*LeetCode-Wiggle Sort

又是不知道怎麼想

規律是 每兩個兩個之間是小於 每對之間是大於 

所以就根據 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;
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章