算法D31 | 贪心算法1 | 455.分发饼干 376. 摆动序列 53. 最大子序和-455.分发饼干  

时间:2024-04-16 09:46:35

代码随想录

两个数组先排序,倒着看最大的cookie能满足的孩子,向前计数。

Python:

class Solution:
    def findContentChildren(self, g: List[int], s: List[int]) -> int:
        g.sort()
        s.sort()
        i = len(g)-1
        j = len(s)-1
        result = 0
        while j>=0 and i>=0:
            if s[j]>=g[i]:
                result += 1
                j -= 1
            i -= 1
        return result

C++:

C++版本用i--实现也算简洁。

class Solution {
public:
    int findContentChildren(vector<int>& g, vector<int>& s) {
        sort(g.begin(), g.end());
        sort(s.begin(), s.end());
        int result=0;
        int i = g.size()-1;
        int j = s.size()-1;
        for (int i=g.size()-1; i>=0; i--) {
            if (j>=0 && s[j]>=g[i]) {
                result++;
                j--;
            }
        }
        return result;
    }
};