您的位置:首页 > 编程语言 > C语言/C++

455. Assign Cookies

2017-09-04 21:19 357 查看
455.Assign Cookies

Assume you are an awesome parent and want
to give your children some cookies. But, you should give each child at most one cookie. Each child i has a greed factor gi,
which is the minimum size of a cookie that the child will be content with; and each cookie j has a size sj.
If sj >=
gi,
we can assign the cookie j to the child i, and the child i will be content. Your goal is to maximize the number of your content children and output the maximum number.

算法思路:

简单说来就是先给greed最大的分最大的cookie,如果分到了,count加1,再给剩下的greed最大的分剩下的最大的cookie;

如果greed最大的没有得到满足就略过,不分了,给剩下的greed最大的分,过分了啊!

所以,此处先将两个数组排序,默认应该是快排,再从后至前分配,算法消耗 2*nlogn +n = nlogn,复杂度为O(nlogn);

class Solution {
public:
int findContentChildren(vector<int>& g, vector<int>& s) {
sort(g.begin(), g.end());
sort(s.begin(), s.end());

int i = g.size()-1, j = s.size()-1;
int count = 0;

while(i>=0 && j>=0){
if(g[i] <= s[j]){
count++;
i--;
j--;
}else{
i--;
}
}
return count;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ leetcode