贪心算法(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));

    }
}
相关推荐
limengshi1383921 天前
人工智能学习:LR和SVM的联系与区别?
人工智能·算法·机器学习·支持向量机
点云SLAM1 天前
PyTorch 中.backward() 详解使用
人工智能·pytorch·python·深度学习·算法·机器学习·机器人
only-qi1 天前
146. LRU 缓存
java·算法·缓存
梁辰兴1 天前
数据结构:排序
数据结构·算法·排序算法·c·插入排序·排序·交换排序
野犬寒鸦1 天前
力扣hot100:搜索二维矩阵 II(常见误区与高效解法详解)(240)
java·数据结构·算法·leetcode·面试
菜鸟得菜1 天前
leecode kadane算法 解决数组中子数组的最大和,以及环形数组连续子数组的最大和问题
数据结构·算法·leetcode
楼田莉子1 天前
C++算法专题学习——分治
数据结构·c++·学习·算法·leetcode·排序算法
一支鱼1 天前
leetcode常用解题方案总结
前端·算法·leetcode
ulias2121 天前
各种背包问题简述
数据结构·c++·算法·动态规划
m0_570466411 天前
代码随想录算法训练营第二十八天 | 买卖股票的最佳实际、跳跃游戏、K次取反后最大化的数组和
java·开发语言·算法