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

打印 上一主题 下一主题

主题 939|帖子 939|积分 2827

题目:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。
对每个孩子i,都有一个胃口值g,这是能让孩子们满足胃口的饼干的最小尺寸;而且每块饼干j,都有一个尺寸 s[j] 。假如 s [j] >= g,我们可以将这个饼干了分配给孩子i,这个孩子会得到满足。你的目的是尽可能满足越多数量的孩子,并输出这个最大数值。
贪心策略:
排序,针对当前胃口最小的孩子,然后挑选饼干;
1.能满足,直接喂;
2.不能满足,直接删掉这个饼干;
  1. import java.util.Arrays;
  2. public class Solution {
  3.     public int findContentChild(int[] g, int[] s) {
  4.         Arrays.sort(g);//将孩子们的胃口从小到大排序
  5.         Arrays.sort(s);//将饼干尺寸从小到大排序
  6.         //排序
  7.         int ret = 0, m = g.length, n = s.length;
  8.         for (int i = 0, j = 0; i < m && j < n; i++, j++) {//双指针,i遍历孩子,j遍历饼干
  9.             while (j < n && s[j] < g[j]) j++;
  10.             if (j < n) ret++;
  11.         }
  12.         return ret;
  13.     }
  14.     public static void main(String[] args) {
  15.         Solution solution=new Solution();
  16.         int[] g1={1,2};
  17.         int[] s1={1,2,3};
  18.         System.out.println(solution.findContentChild(g1,s1));
  19.     }
  20. }
复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

来自云龙湖轮廓分明的月亮

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表