java
class Solution {
public int findContentChildren(int[] g, int[] s) {
int child = 0;
int cookie = 0;
while(child < g.length && cookie < s.length){
if(g[child] <= s[cookie]){
child++;
}
cookie++;
}
return child;
}
}
首先,将孩子的胃口数组 g
和饼干尺寸数组 s
进行排序。然后,使用两个指针 child
和 cookie
分别遍历 g
和 s
。每次迭代中,如果当前饼干可以满足当前孩子的胃口(即 g[child] <= s[cookie]
),则 child
指针向前移动一位。无论当前饼干是否满足当前孩子的胃口,cookie
指针总是向前移动一位。当 g
或 s
的任一数组被完全遍历后,返回 child
指针的位置,这就是最多可以满足的孩子数。