思路:

排序后贪心一层循环直接过

储备:

代码随想录

问题重点:

1、一开始是想写两层遍历

但是两层遍历的缺点是每次都要从头开始遍历,记不住上一次已经消耗掉的

看答案知道改用一层遍历即可。一个萝卜一个坑。小饼干喂小胃口消耗最小。

2、
3、
4、

最后:

class Solution {
public:
    int findContentChildren(vector<int>& g, vector<int>& s) {//g是胃口,s是饼干
        sort(g.begin(),g.end());
        sort(s.begin(),s.end());
        int num=0;
        int i=0;
        //对每个孩子来说,如果有最小的饼干够吃,就。。。?
        for (int j=0;j<s.size();j++) {
            if (s[j]>=g[i]) {
                num++;
                i++;//吃完就下一个。i可能越界的噢
            }
            if (i>=g.size()) break;
        }
        return num;
    }
};

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐