Leetcode455
1.问题描述
2.解决方案
贪心思想,关键找到符合题意得局部最佳和全局最佳,以及既可以也可以所以不如选择…比如本题:大饼干既可以满足胃口大孩子也可以满足胃口小孩子,那就先满足大胃口好了!代码实现的是小饼干先满足小孩子
代码实现技巧:
1.按道理是两重循环,先遍历饼干s,后遍历孩子g,也就是拿着一个最小的饼干找到一个最小的孩子,但是第二重循环可以用g_index并且递减代替
2.要记住是先遍历饼干,拿着饼干找孩子
for(int i=0;i<s.size();i++){
for(int j=0;j<g.size();j++){
//int s_index=0;
//for(int i=0;i<g.size();i++){
// if(s_index<s.size()&&s[s_index]>=g[i]){
// ans++;
// s_index++;
// }
//}
int g_index=0;
for(int i=0;i<s.size();i++){
if(g_index<g.size()&&g[g_index]<=s[i]){
g_index++;
ans++;
}
}
class Solution {
public:
int findContentChildren(vector<int>& g, vector<int>& s) {
sort(g.begin(),g.end()); //孩子
sort(s.begin(),s.end()); //饼干
int ans=0;
//int s_index=0;
//for(int i=0;i<g.size();i++){
// if(s_index<s.size()&&s[s_index]>=g[i]){
// ans++;
// s_index++;
// }
//}
int g_index=0;
for(int i=0;i<s.size();i++){
if(g_index<g.size()&&g[g_index]<=s[i]){
g_index++;
ans++;
}
}
return ans;
}
};