Given an unsorted array nums
, reorder it in-place such that
nums[0] <= nums[1] >= nums[2] <= nums[3]....
Notice
Please complete the problem in-place.
Given nums = [3, 5, 2, 1, 6, 4]
, one possible answer is[1, 6, 2, 5, 3, 4]
.
1 class Solution { 2 public: 3 /** 4 * @param nums a list of integer 5 * @return void 6 */ 7 void wiggleSort(vector<int>& nums) { 8 // Write your code here 9 if (nums.size() < 2) return; 10 11 for (int i = 1; i < nums.size(); i++) { 12 if (i % 2 == 0 && nums[i] > nums[i - 1]) 13 swap(nums[i], nums[i - 1]); 14 if (i % 2 && nums[i] < nums[i - 1]) 15 swap(nums[i], nums[i - 1]); 16 } 17 } 18 };