美文网首页
LeetCode-分发饼干

LeetCode-分发饼干

作者: 沙漠小舟 | 来源:发表于2020-04-02 22:49 被阅读0次

    题目链接 => 戳这里

    题目截图

    解析

    这道题是典型的贪心算法,其实就是求局部最优解,这道题的每个局部其实就是要求用最小的饼干去满足孩子的胃口。那我们可以将饼干和孩子的胃口都排下序,然后遍历孩子和饼干,每次找到的第一个满足 cookie[i] >= child[j]的,就是满足条件的饼干,这时,满足的孩子数可以加1,然后遍历下一个孩子,和下一个饼干;

    解法

    class Solution {
        public int findContentChildren(int[] g, int[] s) {
            Arrays.sort(g);
            Arrays.sort(s);
            int chileNum = 0;
            int cookieNum = 0;
            while (chileNum < g.length && cookieNum < s.length) {
                // 饼干大小满足孩子的胃口
                if (g[chileNum] <= s[cookieNum]) {
                    chileNum ++;
                }
                // 1.满足孩子的胃口,那这块饼干就分出去了,需要偏移
                // 2.不满足孩子胃口,因为孩子胃口已经排序过了,所以更加不可能满足后面孩子的胃口了
                cookieNum ++;
            }
    
            return chileNum;
        }
    }
    

    相关文章

      网友评论

          本文标题:LeetCode-分发饼干

          本文链接:https://www.haomeiwen.com/subject/mskqphtx.html