Leetcode:455. Assign Cookies

来源:互联网 发布:淘宝买家订单能导出吗 编辑:程序博客网 时间:2024/06/10 17:45

代码:

    class Solution {
public:
    int findContentChildren(vector<int>& g, vector<int>& s) {
        sort(g.begin(),g.end());
        sort(s.begin(),s.end());
        
        int num=0;
        int pass=0;
        vector<int>::iterator tag=g.begin();
        vector<int>::iterator i;
        
        for(i=s.begin();i!=s.end();i++){
            if(pass==0){
                if(*i>=*tag){
                    if(num==g.size()-1){
                        pass=1;
                        num++;
                    }
                    else{
                       num++;
                       tag++;
                    }
                 }
            
            }
        }
        
        return num;
        
    }
};


原理:

   (1)把两组数组排序(升序),设置满足个数为0

   (2)根据贪婪选择原则,当前size最小的饼如果不能满足当前greedy最小的孩子,那么当前size最小的饼不能满足所有的孩子

   (3)从饼数组第一个开始遍历,如果当前饼可以满足孩子数组的第一个,那么满足个数加一,然后饼数组和孩子数组都往后移一位

             如果不能满足,满足个数不变,那么饼数组往后移一位

            直到遍历完所有的饼数组或者孩子数组为止

    (4)当前满足个数就是目前所有的饼能够满足的最多的孩子的个数