Wiggle Sort
Given an unsorted array
nums
, reorder it in-place such thatnums[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]
.
sort the array, then swap each two adjacent elements.
class Solution { public: void wiggleSort(vector<int>& nums) { sort(nums.begin(), nums.end()); for(size_t i = 1; i + 1 < nums.size(); i += 2){ swap(nums[i], nums[i + 1]); } } };