LeetcodeOct 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--];
  }
};



Comments