
本题求解的是最多的人数,可以尝试使用贪心算法。给胃口最大的孩子最大重量的饼干。依次类推就可以找到最多的结果。
按照上面的逻辑无法举出反例,那就可以尝试使用贪心算法了。
第一步代码的实现思路就,将胃口和饼干排序。
第二步遍历胃口,用胃口和饼干重量比较,小于等于就将结果+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;
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)