leetcode-280. 摆动数组

给你一个的整数数组 nums, 将该数组重新排序后使 nums[0] <= nums[1] >= nums[2] <= nums[3]... 

简单想法

  1. 排序
  2. 双指针,一前一后插入

贪心?猜的

假定前 i 个已经摆动,i + 1 存在奇、偶两种情况

  1. 奇数 —— 若 nums[i+1] >= nums[i+2] 则符合条件,若 nums[i+1] < nums[i+2],尝试交换后发现 nums[i] < nums[i+2] > nums[i+1] ,完美符合
  2. 偶数 —— 若 nums[i+1] <= nums[i+2] 则符合条件,若 nums[i+1] > nums[i+2], 尝试交换后发现 nums[i] > nums[i+2] < nums[i+1],完美符合
    所以这就构成了归纳法的所需要的要素,代码也就很容易写了——对于 i 和 i + 1,查看是否符合条件,不符合则直接交换
posted @ 2024-06-02 20:07  TopWay2Die  阅读(19)  评论(0)    收藏  举报