324. 摆动排序 II

给定一个无序的数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序。

示例 1:
输入: nums = [1, 5, 1, 1, 6, 4]
输出: 一个可能的答案是 [1, 4, 1, 5, 1, 6]

示例 2:
输入: nums = [1, 3, 2, 2, 3, 1]
输出: 一个可能的答案是 [2, 3, 1, 3, 1, 2]

题解

/**
 * @param {number[]} nums
 * @return {void} Do not return anything, modify nums in-place instead.
 */
var wiggleSort = function(nums) {
    nums.sort((a,b)=>a-b)
    let ss=nums.length%2>0?nums.length/2+1:nums.length/2
    let min=nums.slice(0,ss).reverse()
    let max=nums.slice(ss,nums.length).reverse()
    let i=0
    while(i<nums.length){
        nums[i]=i%2>0?max[Math.ceil(i/2)-1]:nums[i]=min[i/2]   
        i++
    }    
};

发表评论

您的电子邮箱地址不会被公开。