本文主要是介绍Wiggle Sort,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
千万不要被题目所给的栗子给迷惑了,不是一定得找到后半截数字拼接到前半截。
只要满足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]
.
这篇关于Wiggle Sort的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!