Back to all solutions
#324 - Wiggle Sort II
Problem Description
Given an integer array nums, reorder it such that nums[0] < nums[1] > nums[2] < nums[3] You may assume the input array always has a valid answer.
Solution
/**
* @param {number[]} nums
* @return {void} Do not return anything, modify nums in-place instead.
*/
var wiggleSort = function(nums) {
nums.sort((a, b) => a - b);
const m = Math.floor((nums.length - 1) / 2);
for (let i = 0, l = m, r = nums.length - 1, t = [...nums]; i < nums.length; i++) {
nums[i] = i % 2 ? t[r--] : t[l--];
}
};