455. Assign Cookies | 分配饼干
2017-02-13 16:07
323 查看
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.
Note:
You may assume the greed factor is always positive.
You cannot assign more than one cookie to one child.
Example 1:
Example 2:
Subscribe to see which companies asked this question.
思路:用贪心算法,将两个数组都按照升序排序,再进行比较。
public class Solution {
public int findContentChildren(int[] g, int[] s) {
int num = 0;
Arrays.sort(g);
Arrays.sort(s);
for (int i = 0, j = 0; i < g.length && j < s.length;) {
if (s[j] >= g[i]) {
num++;
j++;
i++;
} else {
j++;
}
}
return num;
}
}
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.
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.
Subscribe to see which companies asked this question.
思路:用贪心算法,将两个数组都按照升序排序,再进行比较。
public class Solution {
public int findContentChildren(int[] g, int[] s) {
int num = 0;
Arrays.sort(g);
Arrays.sort(s);
for (int i = 0, j = 0; i < g.length && j < s.length;) {
if (s[j] >= g[i]) {
num++;
j++;
i++;
} else {
j++;
}
}
return num;
}
}
相关文章推荐
- AIX升级openssh步骤
- GDT(Global Descriptor Table)全局描述符表
- 上拉电阻
- ionic常见缓存处理方法
- python中lxml模块生成xml文件
- js生成pdf文件,支持中文字体,插入图片
- VB编程的调用带参数的exe
- [LeetCode] 53. Maximum Subarray
- int a = 10; int b = 20;method(a, b);//需要在method方法被调用之后,仅打印出a=100,b=200,请写出method方法的代码
- php抽奖概率算法(刮刮卡,大转盘)
- next_permutation函数
- 物联网项目落地困境
- XML与JSON相互转换
- 大话设计模式之PHP篇 - 适配器模式
- 微信小程序开发1_资料收集
- Android WebView 远程网页 加载本地资源js/html/css
- 深入了解SQLServer系统数据库工作原理(转)
- Spring MVC(九)常用注解及例子
- Error:Execution failed for task :app:transformClassesWithInstantRunForDebug解决方案
- Java进阶3 —— 类和接口设计原则