Wiggle Sort

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 };
原文地址:https://www.cnblogs.com/amazingzoe/p/5852371.html