【leetcode】280.Wiggle Sort

原題

Given an unsorted array nums, reorder it in-place such that nums[0] <= nums[1] >= nums[2] <= nums[3]....
For example, given nums = [3, 5, 2, 1, 6, 4], one possible answer is [1, 6, 2, 5, 3, 4].算法

解析

搖擺排序
只要奇數位上的數比左右偶數位上的數都大便可code

思路

貪心算法:在對問題求解時,老是作出在當前看來是最好的選擇。
也就是說,不從總體最優上加以考慮,他所作出的是在某種意義上的局部最優解。排序

解法

public int[] wiggleSort(int[] nums) {
        for (int i = 1; i < nums.length; i++) {
            if ((((i & 1) == 1) && (nums[i] < nums[i - 1])) || (((i & 1) == 0) && (nums[i] > nums[i - 1]))) {
                int temp = nums[i];
                nums[i] = nums[i - 1];
                nums[i - 1] = temp;
            }
        }
        return nums;
    }
相關文章
相關標籤/搜索