Leetcode•Oct 11, 2025
Wiggle Sort II
Hazrat Ali
Leetcode
You may assume the input array always has a valid answer.
Example 1:
Input: nums = [1,5,1,1,6,4] Output: [1,6,1,5,1,4] Explanation: [1,4,1,5,1,6] is also accepted.
Example 2:
Input: nums = [1,3,2,2,3,1] Output: [2,3,1,3,1,2]
Solition
/**
* @param {number[]} nums
* @return {void}
*/
const wiggleSort = nums => {
const n = nums.length;
const sorted = nums.slice().sort((a, b) => a - b);
for (let i = 0, j = n - 1, k = Math.floor((n - 1) / 2); i < n; i++) {
nums[i] = i & 1 ? sorted[j--] : sorted[k--];
}
};