贪心算法
(每一步都是最优,从而导致全局最优)
1.分发饼干 先遍历饼干,再去看胃口
2.摆动序列 (---------不理解----------)
3.最大子序和 当之前的和变成负数就应该清空。换句话说 允许下一个数是负数,但是加上这个负数之后不能让sum小于0
4.买卖股票的最佳时机2 这里把利润拆分成每一天的利润,如果i+1>i,那么就可以赚。所以最后就变成了求数组中升序的大小总和。
5.跳跃游戏 每次更新最大可覆盖范围,如果可以覆盖到终点就true
6.k次取反后的最大化数组和 两次排序 第一次排序从小到大,优先把负的很大的变正。如果k还有剩余,那就再排一次,把最小的那个数反转,(这里应该只需要排一次)
7.加油站 很有趣的一题,把消耗和补充统合成油箱的剩余量,从头开始遍历,一旦残余量为0,那么从i+1开始重新计算。
8.分糖果 要考虑左右两边的情况,那么就先从左到右遍历一遍,只考虑左边的情况。再从右往左一遍。
9.柠檬水找零 这题之前写过,分情况讨论即可,收20元时优先给10元和5元
10.根据身高重建队列 (----难-----) 这里出现了vector的插入操作和sort的自定义操作。先根据身高从高到低排,然后根据k来插入。
11.用最少的弓箭射爆气球 很妙,这里理解的难点是要不断更新重叠部分的右边界,以便于下一个气球来判断是否还可以一起射爆
12.无重叠区间 与上面这题类似
13-end 贪心先暂时学到着,相比起回溯,贪心因为没有固定章法,对我来说太难了。多练多练