455. 分发饼干(贪心算法)


455. 分发饼干

题目

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

注意:

你可以假设胃口值为正。
一个小朋友最多只能拥有一块饼干。

在这里插入图片描述

解题思路

先给两个数组排序,然后用两个指针,分别指向G S,
然后去遍历他们,如果满足g[xx]<=s[xx],就给结果+1;
否则把指向S的指针下移一位,继续比较。

代码

/**
解题思路:
    先给两个数组排序,然后用两个指针,分别指向G  S,
    然后去遍历他们,如果满足g[xx]<=s[xx],就给结果+1;
    否则把指向S的指针下移一位,继续比较。
**/
class Solution {
       public int findContentChildren(int[] g, int[] s) {
     int pg=0;
        int ps=0;
        int num=0;

        Arrays.sort(g);
        Arrays.sort(s);
        while (pg<g.length&&ps<s.length){
            if (g[pg]<=s[ps]){
                pg++;
                num++;
            }
                ps++;//移动指针PS
// 那么g[4,8,9]  s[1,5,7]  因为4比1大,G又是有序的,所以G以后的更不可能小于1了,所以这个时候就要移动指针ps不移动指针pg。

        }
        return num;
    }
}

文章作者: fFee-ops
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fFee-ops !
评论
  目录