在C ++中分配Cookie
因此,如果输入类似于[1,2],[1,2,3],则输出将为2,有2个子代和3个cookie。2个孩子的贪婪因子为1、2。现在我们有3个cookie,它们的大小足以满足所有孩子的需要,因此输出为2。
为了解决这个问题,我们将遵循以下步骤-
排序数组g
对数组进行排序
i:=0,j=0
而(i<g的大小而j<s的大小),做-
(将i增加1)
如果g[i]<=s[j],则-
(将j增加1)
还给我
示例
让我们看下面的实现以更好地理解-
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int findContentChildren(vector<int>& g, vector<int>& s) {
sort(g.begin(), g.end());
sort(s.begin(), s.end());
int i = 0, j = 0;
while (i < g.size() && j < s.size()) {
if (g[i] <= s[j])
i++;
j++;
}
return i;
}
};
main(){
Solution ob;
vector<int> v = {1,2}, v1 = {1,2,3};
cout << (ob.findContentChildren(v, v1));
}输入值
{1,2}, {1,2,3}输出结果
2