糖逗 发表于 2020-7-5 20:01:28

C++刷LeetCode(面试题 10.11. 峰与谷)【数学】

题目描述:

在一个整数数组中,“峰”是大于或等于相邻整数的元素,相应地,“谷”是小于或等于相邻整数的元素。例如,在数组{5, 8, 6, 2, 3, 4, 6}中,{8, 6}是峰, {5, 2}是谷。现在给定一个整数数组,将该数组按峰与谷的交替顺序排序。

示例:

输入:
输出:
提示:

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 = store;
                right--;
            }else{
                nums = store;
                left++;
            }
      }
      return;
    }
};

类比同类型题:https://fishc.com.cn/forum.php?mod=viewthread&tid=173115&highlight=%D4%F6%BC%F5%D7%D6%B7%FB%B4%AE%C6%A5%C5%E4
页: [1]
查看完整版本: C++刷LeetCode(面试题 10.11. 峰与谷)【数学】