324. Wiggle Sort II
来源:互联网 发布:手提包女士知乎 编辑:程序博客网 时间:2024/05/22 07:41
Given an unsorted array
nums
, reorder it such thatnums[0] < nums[1] > nums[2] < nums[3]...
.Example:
(1) Givennums = [1, 5, 1, 1, 6, 4]
, one possible answer is[1, 4, 1, 5, 1, 6]
.
(2) Givennums = [1, 3, 2, 2, 3, 1]
, one possible answer is[2, 3, 1, 3, 1, 2]
.Note:
You may assume all input has valid answer.Follow Up:
Can you do it in O(n) time and/or in-place with O(1) extra space?Small half: M . S . S . S Small half: M . S . S . S .Large half: . L . L . M . Large half: . L . L . L . M-------------------------- --------------------------Together: M L S L S M S Together: M L S L S L S M
简单来说,先用找到中间的值。 然后再按照上图的方法插空即可。
class Solution {public: static bool cmp(int a, int b) {return a>b;} void wiggleSort(vector<int>& nums) { auto it = nums.begin() + (nums.size()-1) /2; nth_element(nums.begin(),it, nums.end()); sort(nums.begin(),it+1, cmp); sort(it+1, nums.end(), cmp); vector<int> result; int left = 0; int right = (nums.size()-1)/2+1; for(int i = 0; i < nums.size(); i++) { if(i%2==0) result.push_back(nums[left++]); if(i%2==1) result.push_back(nums[right++]); } nums = result; }};
0 0
- 324. Wiggle Sort II
- 324. Wiggle Sort II
- 324. Wiggle Sort II
- 324. Wiggle Sort II
- 324. Wiggle Sort II
- 324. Wiggle Sort II
- 324. Wiggle Sort II
- 324. Wiggle Sort II
- 324. Wiggle Sort II**
- 324. Wiggle Sort II
- 324. Wiggle Sort II
- 324. Wiggle Sort II
- 324. Wiggle Sort II
- 324. Wiggle Sort II
- 324. Wiggle Sort II
- 324. Wiggle Sort II
- # 324. Wiggle Sort II
- 324. Wiggle Sort II
- 关于开始
- 试试
- IO负载高的来源定位
- 第13周实践项目4立体类族共有的抽象类
- 第十三周项目1-分数类中的运算符重载——2
- 324. Wiggle Sort II
- jquery选择器案例
- Ubuntu下Xilinx Linux内核编译问题,出现“缺少ncurses”libraries
- C# 序列化与反序列化
- 巧用location.hash保存页面状态
- 【Halcon】Halcon颜色识别之classify_fuses_gmm_based_lut.hdev
- css-去除默认样式
- [python]新手写爬虫v2.5(使用代理的异步爬虫)
- 第十一周上机实践项目3(1):警察和厨师