又是不知道怎么想
规律是 每两个两个之间是小于 每对之间是大于
所以就根据 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;
}
}