文章目录
- 什么是贪心
- 分饼干问题
什么是贪心
贪心的本质是选择每一阶段的局部最优,从而达到全局最优。
这么说有点抽象,来举一个例子:
例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额,你要怎么拿?
指定每次拿最大的,最终结果就是拿走最大数额的钱。
每次拿最大的就是局部最优,最后拿走最大数额的钱就是推出全局最优。
分饼干问题
大尺寸的饼干既可以满足胃口大的孩子也可以满足胃口小的孩子,那么就应该优先满足胃口大的。
这里的局部最优就是大饼干喂给胃口大的,充分利用饼干尺寸喂饱一个,全局最优就是喂饱尽可能多的小孩。
public class leetcode_455 {public static void main(String[] args) {int[] g = {1, 2};int[] s = {1, 2, 3};System.out.println(meet(g, s));}public static int meet(int[] g, int[] s) {Arrays.sort(g);Arrays.sort(s);int j = s.length - 1;int index = 0;for (int i = g.length - 1; i >= 0; i--) {if (j >= 0 && s[j] >= g[i]) {j--;index++;}}return index;}}