Day31_贪心_分发饼干_摆动序列_最大子数组的和

455 分发饼干

  1. 首先的两个数组排序形成对应关系。
  2. 使用index避免了 两重for 的使用。

376 摆动序列

  1. 记录前一个 峰差 和后一个 峰差。两个异号,result++。
  2. 刚开始的 前峰 置为0, 使得从第二个数字开始就可以统一判断的逻辑。
  3. 为了使 摆动序列的长度 最长,遇到恒正取最大,恒负取最小。代码使用 curDiff = nums[i] - nums[i-1]; 实现,因为恒正的最大就是最后一个。同负。很妙的点。

53最大子数组和

  1. 我的想法是子数组首位不为 负数。贪心思路则部分和不为负,如果为负,则从下一个点从新计算,实现裁剪。
  2. 一个for直接实现,count += nums[i]; 如果当前的部分和count比最大的部分和maxSub还大,更新maxSub。遇到部分和为负,表示这段部分和的最大已经结束,count = 0; 很妙的思路。也没有回溯,就一直往下更新 count 的值。

你可能感兴趣的:(算法,数据结构,leetcode,力扣,C++)