一、贪心基础
贪心的本质是选择每一阶段的局部最优,从而达到全局最优。
贪心算法一般分为如下四步:
- 将问题分解为若干个子问题
- 找出适合的贪心策略
- 求解每一个子问题的最优解
- 将局部最优解堆叠成全局最优解
二、分发饼干
大尺寸的饼干既可以满足胃口大的孩子也可以满足胃口小的孩子,那么就应该优先满足胃口大的。
这里的局部最优就是大饼干喂给胃口大的,充分利用饼干尺寸喂饱一个,全局最优就是喂饱尽可能多的小孩。
数组排序:
Arrays.sort(g);
for循环遍历胃口,用if判断当前胃口能否被饼干满足,如果满足指针便宜,结果自增。
先 遍历胃口,因为胃口可能不回被满足,但是需要全部遍历,而内层是匹配条件了才移动。
三、摆动序列
不知道怎么梳理该考虑的情况。
四、最大子序和
局部最优:当前“连续和”为负数的时候立刻放弃,从下一个元素重新计算“连续和”,因为负数加上下一个元素 “连续和”只会越来越小。
局部最优的情况下,并记录最大的“连续和”,可以推出全局最优。
针对只有一个元素的情况下,直接返回。