力扣455-分发饼干(java题解)
题目:题目链接
前情提要:
因为本人最近都在刷贪心类的题目所以该题就默认用贪心方法来做。
贪心方法:局部最优推出全局最优。
如果一个题你觉得可以用局部最优推出全局最优,并且没有反例来反驳的话就可以用贪心来试试。
题目思路:
局部最优:让每一个大饼干尽可能的去满足每一个胃口大的孩子
如果不好理解可以取反例思考 : 如果让大饼干去给一个小胃口的孩子 那是不是亏了。更大胃口的孩子就满足不了
完整代码:
class Solution {public int findContentChildren(int[] g, int[] s) {//先给胃口和饼干进行排序Arrays.sort(g);Arrays.sort(s);int index = s.length - 1;int result = 0;//遍历每一个胃口的小孩 从大胃口往后面遍历for(int i = g.length - 1;i >= 0; i--){//如果有大饼干可以满足大胃口的孩子就将饼干给该孩子//如果不能满足就等待下一个可以满足的 从而实现动态的满足大胃口的孩子if(index >= 0 && s[index] >= g[i]){result ++;index --;}}return result;}
}
这一篇博客就到这了,如果你有什么疑问和想法可以打在评论区,或者私信我。
我很乐意为你解答。那么我们下篇再见!