- 解题思路从最大的饼干开始找出胃口最大的孩子来满足
- 如果可以满足,再找第二大饼干,和可以满足下一个胃口最大的孩子
- 所以一开始要对孩子胃口与饼干的数组进行从大到小排序
- 再倒序查找可以满足孩子胃口的最大饼干,找到这样的饼干后,再用下一个最大的饼干找下一个可以满足孩子的胃口
#include <iostream>
#include <vector>
#include <algorithm>class Solution {
public:int findContentChildren(std::vector<int>& g, std::vector<int>& s) {std::sort(g.begin(), g.end());std::sort(s.begin(), s.end());int count = 0;int s_index = s.size() - 1;for (int i = g.size() - 1; i >= 0; --i) {if (s_index >= 0 && s.at(s_index) >= g.at(i)) {++count;--s_index;}}return count;}
};int main()
{std::vector<int> g {1, 2};std::vector<int> s1 {1, 2, 3};Solution s;std::cout << s.findContentChildren(g, s1) << std::endl;return 0;
}