LeetCode--分发饼干

举报
周小末天天开心 发表于 2022/11/19 17:42:46 2022/11/19
【摘要】 LeetCode题目——分发饼干

分发饼干

题目来源:力扣(LeetCode
题目链接:https://leetcode.cn/problems/assign-cookies

题目:

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。

示例 1:

输入: g = [1,2,3], s = [1,1]
输出: 1


解释:
你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1,2,3。
虽然你有两块小饼干,由于他们的尺寸都是1,你只能让胃口值是1的孩子满足。
所以你应该输出1。

示例 2:

输入: g = [1,2], s = [1,2,3]
输出: 2


解释:
你有两个孩子和三块小饼干,2个孩子的胃口值分别是1,2。
你拥有的饼干数量和尺寸都足以让所有孩子满足。
所以你应该输出2.

题目提示:

题目分析:

1)首先定义两个变量分别代表满足孩子的数量和饼干的个数

2)将接收的两个数组的值进行从小到大的排序,因为要使用尽量小的饼干去满足胃口需求小的孩子。

3)遍历去求满足孩子的个数

代码演示:

class Solution {
    public int findContentChildren(int[] g, int[] s) {
        int child = 0;
        int cookie = 0;
 
        //对数组进行排序
        Arrays.sort(g);  
        Arrays.sort(s);
 
        for(; child < g.length && cookie < s.length;) {
            if(g[child] <= s[cookie]){
                //如果这个孩子的胃口小于或者等于饼干的尺寸
                // 那么就可以将这个饼干分给这个孩子
                child++;
            }
            cookie++;
            // 一个饼干只能用一次,如果满足的话就不可以再次使用了
        }
        return child; //返回满足的数量
    }
}

执行结果:

评价:

        8ms,42.6MB。只能说很垃圾🥺,还需努力。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。