又是不知道怎麼想
規律是 每兩個兩個之間是小於 每對之間是大於
所以就根據 i 的奇偶性來判斷兩個連續數字見的關係 並且可以發現swap不會影響前面的正確 因爲一對之間的關係應該是大於 假如是小於 需要swap 那麼只會給前面換過去一個更大的 所以不用擔心
public class Solution {
public void wiggleSort(int[] nums) {
for ( int i = 0; i < nums.length - 1; i ++ ){
if ( i % 2 == 0 ){
if ( nums[ i ] > nums [ i + 1 ] )
swap ( nums, i, i + 1 );
}
else if ( nums [ i ] < nums [ i + 1 ] )
swap ( nums, i, i + 1 );
}
}
public void swap ( int [] nums, int p1, int p2 ){
int temp = nums[ p1 ];
nums[ p1 ] = nums [ p2 ];
nums[ p2 ] = temp;
}
}