您的位置:首页 > 其它

[Leetcode]Wiggle Sort

2015-09-21 16:07 316 查看
Given an unsorted array 
nums
, reorder it in-place such
that 
nums[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]
.
/*algorithm
the array should meet below
A[even] <= A[odd]
A[odd] >= A[even]
we just scan the list, and do swap operation
time O(n) space O(1)

 */
void wiggleSort(vector<int>&nums)
{
for(int i = 0;i+1 < nums.size();i++){
if(i&0x1){
if(nums[i] < nums[i+1])
swap(nums[i],nums[i+1]);
}else{
if(nums[i] > nums[i+1])
swap(nums[i],nums[i+1]);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode 算法