類別:greedy
難度:easy
題目描述
算法描述
(1)對孩子們的最低要求進行排序,對所有的餅乾進行排序
(2)將能夠滿足孩子要求的最小的餅乾給相應的孩子,直到遍歷完兩個數組。
代碼實現
class Solution {
public:
int findContentChildren(vector<int>& g, vector<int>& s) {
int n = g.size();
int m = s.size();
int ans = 0;
sort(g.begin(), g.end());
sort(s.begin(), s.end());
int i = 0, j = 0;
// 注意這裏是(i < n && j < m) 如果是(i < n, j < m)的話,結果出錯。
for (i = 0, j = 0; i < n && j < m; ++j) {
if (g[i] <= s[j]) {
ans++;
i++;
}
}
return ans;
}
};
這道題目沒有什麼難度,但是需要注意一個地方,就是for循環中的條件判斷,在dev c++中運行的時候,使用i < n, j < m不會出錯,但是在leetcode上面過不了,改爲(i < n && j < m)後是Accepted