-
Notifications
You must be signed in to change notification settings - Fork 86
Open
Description
原题链接:https://leetcode-cn.com/problems/assign-cookies/
解题思路:
- 按照题意,孩子将会始终处于等待状态,而饼干可能出现多个都无法满足孩子胃口的情况。
- 例如孩子的胃口为
5
,饼干为[1,2,3,4,5,6]
的话,那么必须要从1到5遍历饼干,才可以查找到可以被吃的饼干。 - 因此可以用for循环遍历饼干,用过一个指针作为遍历孩子的索引,遇到可被食用的饼干时,将指针加1,同时被喂饼干的孩子数量也加1。
- 由于用于遍历孩子的指针和可喂饼干的孩子数量始终相等,因此可用同一个变量表示。
- 可能出现孩子已经全部遍历,而饼干还有剩余的情况,因此需要考虑提前退出for循环。
/**
* @param {number[]} g
* @param {number[]} s
* @return {number}
*/
var findContentChildren = function(g, s) {
// 统计吃到饼干的孩子数量,由于该值和遍历g的索引相等,因此使用count遍历g
let count = 0;
// 先将g和s都排序,按顺序对比保证不会出现遗漏
g.sort((a, b) => a - b);
s.sort((a, b) => a - b);
// 遍历每个饼干,查找可以食用它的孩子
for (const cookie of s) {
// 如果当前饼干>=孩子的胃口,则可以食用
if (cookie >= g[count]) {
// 将count加1,同时完成了计数和枚举下一个要匹配的孩子
count++;
// 如果出现已经没有孩子,但饼干还存在的情况,则提前退出循环
if (count === g.length) {
break;
}
}
}
return count;
};
Metadata
Metadata
Assignees
Labels
No labels