Wiggle Sort

来源:互联网 发布:怎样和淘宝卖家聊天 编辑:程序博客网 时间:2024/06/12 01:05

千万不要被题目所给的栗子给迷惑了,不是一定得找到后半截数字拼接到前半截。

只要满足nums[0] <= nums[1] >= nums[2] <= nums[3]....即可。

所以排序后,只是从第二个开始,i和i+1的置换即可。

public class Solution {    public void wiggleSort(int[] nums) {        Arrays.sort(nums);        for (int i = 2; i < nums.length; i += 2) {            int temp = nums[i];            nums[i] = nums[i - 1];            nums[i - 1] = temp;        }    }}

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].



0 0
原创粉丝点击