(编程实现) 饼干分配 假设你是一位家长,你想要给你的孩子们一些饼干,你只能给一个孩子最多一块饼干. 每 个孩子 i 有一个贪婪因子 gi,gi 表示可以将这个满足孩子 i 的最小饼干尺寸. 每一块饼干 j 有各自的大小 sj,如果 sj ≥ gi 时,我们可以将饼干 j 分配给孩子 i,孩子 i 会被满足。 目标是最大化得到满足的孩子的数量并输出满足孩子的数量。
Example 1:
Input: 第一行贪婪因子,第二行饼干大小
1 2 3
1 1
Output:
1
Example 2:
Input: 1 2
1 2 3
Output:
2
思路:想要去满足最多孩子的胃口,我们采取的策略是先对贪婪因子和饼干大小进行排序。然后从胃口最小的孩子开始,给他满足胃口的最小饼干。设置两个指针,one for the greedy ,one for the cookie size .
public int find(int[] greedy ,int[] cookies) {
Arrays.sort(greedy);
Arrays.sort(cookies);
int ret = 0 ;
for(int i = 0 , j = 0;i <greedy.length && j < cookies.length;) {
if(greedy[i] <= cookies[j]) {
i++;
j++;
ret++;
}else {
j++;
}
}
return ret;
}