贪心算法(7)(java) 分发饼干

题目:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。

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

贪心策略:

排序,针对当前胃口最小的孩子,然后挑选饼干;

1.能满足,直接喂;

2.不能满足,直接删掉这个饼干;

java 复制代码
import java.util.Arrays;

public class Solution {
    public int findContentChild(int[] g, int[] s) {
        Arrays.sort(g);//将孩子们的胃口从小到大排序
        Arrays.sort(s);//将饼干尺寸从小到大排序
        //排序
        int ret = 0, m = g.length, n = s.length;
        for (int i = 0, j = 0; i < m && j < n; i++, j++) {//双指针,i遍历孩子,j遍历饼干
            while (j < n && s[j] < g[j]) j++;
            if (j < n) ret++;
        }
        return ret;
    }

    public static void main(String[] args) {
        Solution solution=new Solution();
        int[] g1={1,2};
        int[] s1={1,2,3};
        System.out.println(solution.findContentChild(g1,s1));

    }
}
相关推荐
热心网友俣先生14 小时前
2026年第二十三届五一数学建模竞赛B题四问参考答案+多算法对比
算法·数学建模
无敌昊哥战神14 小时前
【LeetCode 37】解数独 (Sudoku Solver) —— 回溯法详解 (Python/C/C++)
c语言·c++·python·算法·leetcode
风筝在晴天搁浅14 小时前
LeetCode 162.寻找峰值
算法·leetcode
itzixiao14 小时前
L1-067 洛希极限(10分)[java][python]
java·开发语言·算法
jinyishu_14 小时前
链表经典OJ题
c语言·数据结构·算法·链表
葫三生14 小时前
三生原理文章被AtomGit‌开源社区收录的意义探析?
人工智能·深度学习·神经网络·算法·搜索引擎·开源·transformer
AI进化营-智能译站14 小时前
ROS2 C++开发系列15-模板实现通用算法|宏定义ROS2调试开关|一次编码适配多平台
java·c++·算法·ai
澈20714 小时前
C++引用与指针:核心区别全解析
开发语言·数据结构·c++
刀法如飞14 小时前
Java数组去重的20种实现方式——指导AI解决不同问题的思路
java·算法·面试
良木生香14 小时前
【C++初阶】STL——Vector从入门到应用完全指南(1)
开发语言·c++·神经网络·算法·计算机视觉·自然语言处理·数据挖掘