Note:
You may assume the greed factor is always positive.
You cannot assign more than one cookie to one child.
Example 1:
Input: [1,2,3], [1,1]
Output: 1
Explanation: You have 3 children and 2 cookies. The greed factors of 3 children are 1, 2, 3.
And even though you have 2 cookies, since their size is both 1, you could only make the child whose greed factor is 1 content.
You need to output 1.
Example 2:
Input: [1,2], [1,2,3]
Output: 2
Explanation: You have 2 children and 3 cookies. The greed factors of 2 children are 1, 2.
You have 3 cookies and their sizes are big enough to gratify all of the children,
You need to output 2.
思路与实现
import java.util.Arrays;
/*
思路:对需求因子g与糖果数组s从小到大排序
按照从小到大的顺序使用个各个糖果尝试是否可以满足某个孩子,每个糖果只试一次,如果成功,则糖果指向下一个,孩子指向下一个;
如果不成功,该糖果没用,糖果指向下一个;直到没有孩子或者没有糖果结束循环。
*/
class Solution {
public int findContentChildren(int[] g, int[] s) {//g为需求因子 s为糖果
Arrays.sort(g);
Arrays.sort(s);
int child=0;
int cookie=0;
while (child<g.length && cookie<s.length){
if(g[child]<=s[cookie])
child++;
cookie++;
}
return child;
}
}