LeetCode455. 分发饼干

思路

本题求解的是最多的人数,可以尝试使用贪心算法。给胃口最大的孩子最大重量的饼干。依次类推就可以找到最多的结果。

按照上面的逻辑无法举出反例,那就可以尝试使用贪心算法了。

第一步

代码的实现思路就,将胃口和饼干排序。

第二步

遍历胃口,用胃口和饼干重量比较,小于等于就将结果+1,反之不操作。此处使用一个for循环+一个饼干的下标会比使用两个for循环的实现逻辑简单。

第三步

返回结果就可以了。

代码

class Solution {
    public int findContentChildren(int[] g, int[] s) {
        int res = 0;
        int lg = g.length;
        int ls = s.length;
        Arrays.sort(g);
        Arrays.sort(s);
        for(int i = lg-1;i>=0;i--){
           if(ls-1 >= 0 && g[i]<=s[ls-1]){
               res++;
               ls--;
           }
        }
        return res;
    }
}

你可能感兴趣的:(LeetCode,贪心算法)