題目來源
分糖果的問題,我想到的是先把孩子和糖果排序腌逢,然后從后往前遍歷降淮,假如糖果大于孩子,就給搏讶。
class Solution {
public:
int findContentChildren(vector<int>& g, vector<int>& s) {
auto n1 = g.size();
auto n2 = s.size();
sort(g.begin(), g.end());
sort(s.begin(), s.end());
int p1 = n1 - 1, p2 = n2 - 1;
int cnt = 0;
while (p2 >= 0 && p1 >= 0) {
if (s[p2] >= g[p1]) {
cnt++;
p2--;
}
p1--;
}
return cnt;
}
};
然后看了下討論區(qū)佳鳖,其實從前往后更簡單一些,假如糖果滿足孩子窍蓝,就給腋颠。其實都一樣,只是代碼寫的簡單了一些吓笙。
class Solution {
public:
int findContentChildren(vector<int>& g, vector<int>& s) {
auto n1 = g.size();
auto n2 = s.size();
sort(g.begin(), g.end());
sort(s.begin(), s.end());
int i = 0;
for (int j=0; i<n1 && j<n2; j++)
if (s[j] >= g[i])
i++;
return i;
}
};