解题思路:
目标是让尽可能多的孩子吃饱,那就用最小的饼干先让饭量最小的孩子吃
贪心算法:不从整体考虑,求得局部最优解
class Solution {
public:
int findContentChildren(vector<int>& g, vector<int>& s) {
//目标是让尽可能多的孩子吃饱,那就用最小的饼干先让饭量最小的孩子吃
//g[i]:小孩数组 s[i]:饼干数组 从第一个孩子开始,保证吃饱
//1.先将小孩数组和饼干数组进行从小到大排序
sort(g.begin(),g.end());
sort(s.begin(),s.end());
//2.循环小孩和饼干的数组
//先定义两个数来接收小孩和饼干的
int child = 0;
int cooike = 0;
while(child < g.size() && cooike < s.size()) //饼干和小孩的数量都小于各自的数组则在循环内
{
if(g[child] <= s[cooike])//小孩的胃口小于饼干的数量,这个小孩就能吃饱
{
++child; //当前小孩能吃饱,小孩加1
}
cooike++; //当前小孩吃不饱,饼干加1,看下一个饼干小孩够吃不
}
return child;
}
};