贪心算法1分发饼干
Posted 念奕玥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了贪心算法1分发饼干相关的知识,希望对你有一定的参考价值。
贪心算法或贪心思想采用贪心的策略,保证每次操作都是局部最优的,从而使最
后得到的结果是全局最优的。
可用于解决分配问题
e.g.
leetcode 455 分发饼干
解题思路:
目标:尽可能满足越多数量的孩子。
根据目标,可以容易想到,先去满足胃口值小的孩子。
为了尽量使饼干可以满足更多的孩子,所以要把饼干尺寸大于等于孩子胃口值的饼干中挑尺寸最小的饼干给孩子。满足了这个孩子之后,再采取同样的策略去考虑剩下的孩子,直到孩子全被满足或者没有符合条件的饼干。
对孩子胃口值和饼干尺寸进行排序,便于从胃口值最小的孩子开始满足,也便于挑选合适的饼干。
class Solution {
public int findContentChildren(int[] g, int[] s) {
//首先进行排序
Arrays.sort(g);
Arrays.sort(s);
int child = 0,cookie=0;
//当其中一个遍历结束就结束循环(孩子都有饼干吃或饼干分完)
while(child<g.length && cookie < s.length){
if(g[child]<=s[cookie]) child++; //如果孩子能吃饱就再喂下一个孩子
cookie++; //饼干能喂饱或不能喂饱都再用下一个饼干
}
return child;//喂饱的孩子数
}
}
以上是关于贪心算法1分发饼干的主要内容,如果未能解决你的问题,请参考以下文章