Wiggle Sort II
来源:互联网 发布:足球竞彩数据分析app 编辑:程序博客网 时间:2024/05/02 06:45
题目描述:
Given an unsorted array nums, reorder it such that nums[0] < nums[1] > nums[2] < nums[3]….
Example:
(1) Given nums = [1, 5, 1, 1, 6, 4], one possible answer is [1, 4, 1, 5, 1, 6].
(2) Given nums = [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?
题目大意:
给定一个未排序数组,重新排列使得数组满足nums[0] < nums[1] > nums[2] < nums[3]….
测试用例如题目描述。
注意:
你可以假设所有输入都有可行解。
解题思路:
解法I O(nlogn)时间排序+O(n)空间辅助数组解法:
对原数组排序,得到排序后的辅助数组snums
第一次循环对原数组的奇数位下标填充snums的末尾元素
第二次循环对原数组的偶数位下标填充snums的末尾元素
相当于用数组中大的一半和小的一半隔开。
class Solution {public: void wiggleSort(vector<int>& nums) { sort(nums.begin(),nums.end()); vector<int>snums = nums; int j = nums.size()-1; for (int i = 0; i < nums.size(); i++) { if(i%2 != 0) nums[i] = snums[j--]; } for (int i = 0; i < nums.size(); i++) { if(i%2 == 0) nums[i] = snums[j--]; } }};
0 0
- leetcode Wiggle Sort II
- LeetCode Wiggle Sort II
- leetcode Wiggle Sort II
- Leetcode Wiggle Sort II
- Wiggle Sort II
- Wiggle Sort II
- LintCode Wiggle Sort II
- 324. Wiggle Sort II
- 324. Wiggle Sort II
- 324. Wiggle Sort II
- Wiggle Sort II
- Wiggle Sort II
- leecode_324 Wiggle Sort II
- 324. Wiggle Sort II
- Wiggle Sort II
- 324. Wiggle Sort II
- 324. Wiggle Sort II
- 324. Wiggle Sort II
- LinuxELF文件格式详解--Linux进程的管理与调度(十二)
- http请求返回码
- 第一章 JAVA入门(概述)
- CentOS 7下firefox 安装flash player
- 快递
- Wiggle Sort II
- spring事务配置的五种方式
- 第二章 java基础(开篇)
- 子空间算法
- 什么样的代码才称得上健壮
- <记录>从零学数据结构算法——线性表
- DCOS实践分享(3):基于Mesos 和 Docker企业级移动应用实践分享
- python图像融合(基于PIL image库)
- 高聚合、低耦合