|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目描述:
- 在一个整数数组中,“峰”是大于或等于相邻整数的元素,相应地,“谷”是小于或等于相邻整数的元素。例如,在数组{5, 8, 6, 2, 3, 4, 6}中,{8, 6}是峰, {5, 2}是谷。现在给定一个整数数组,将该数组按峰与谷的交替顺序排序。
- 示例:
- 输入: [5, 3, 1, 2, 3]
- 输出: [5, 1, 3, 2, 3]
- 提示:
- nums.length <= 10000
复制代码
- class Solution {
- public:
- void wiggleSort(vector<int>& nums) {
- vector<int> store(nums.begin(), nums.end());
- sort(store.begin(), store.end());
- int left = 0, right = store.size() - 1;
- for(int i = 0; i < nums.size(); i++){
- if(i % 2 == 0){
- nums[i] = store[right];
- right--;
- }else{
- nums[i] = store[left];
- left++;
- }
- }
- return;
- }
- };
复制代码
类比同类型题:https://fishc.com.cn/forum.php?m ... B%B4%AE%C6%A5%C5%E4 |
|