分发饼干

摘要:
一个小朋友最多只能拥有一块饼干。

1、题目来源:

选自LeetCode 455:分发饼干

2、题目描述:

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj。如果 sj >= gi,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。

注意:

你可以假设胃口值为正。
一个小朋友最多只能拥有一块饼干。

分发饼干第1张

3、题目分析:

使用贪心算法,对孩子需求数组和饼干大小数组分别进行从小到大的排序。然后按照从小到大的顺序使用各个饼干尝试满足某个孩子,每个饼干只是用一次,若尝试成功的话,孩子个数加一,并换下一个孩子接着进行后面的尝试,直到发现没有更多的孩子或者没有更多的饼干为止,循环结束,返回此时的孩子个数。

4、代码实现

1 public int findContentChildren(int[] g, int[] s) {
2         //先对两个数组进行从小到大的排序
3 Arrays.sort(g);
4 Arrays.sort(s);
5         int child = 0;
6         int cookie = 0;
7         /**
8 * 按照从小到大的顺序使用各个饼干尝试满足某个孩子,每个饼干只是用一次,若尝试
9 * 成功的话,孩子个数加一,并换下一个孩子接着进行后面的尝试,直到发现没有更多
10 * 的孩子或者没有更多的饼干为止,循环结束,
11          */
12         while (child < g.length && cookie <s.length) {
13             //只有当孩子需求值小于或者等于饼干大小的时候,child指针才会加一
14             //这时候也就说明当前的饼干大小能够满足这个孩子的需求,
15             if (g[child] <=s[cookie]) {
16                 child++;
17 }
18             /**
19 * 不管当前的饼干大小能不能满足孩子的需求,都要向后移动一位,当前若满足的话
20 * 用下一个饼干去尝试满足下一个孩子,如当前饼干不能满足的话,尝试用下一个饼干
21 * 去满足当前这个孩子
22              */
23             cookie++;
24 }
25         returnchild;
26     }

6、提交运行

分发饼干第2张

免责声明:文章转载自《分发饼干》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SpringMVC in IDEA开发实践Node.js 常用工具-util下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

vue cli3.0 打包静态文件目录的配置

默认情况下,vuecli3.0打包生成的文件也会作为cli2.0在dist目录中生成,但css、js和img等静态文件不会像cli2.0那样放在静态文件夹中。您需要修改vue.config.js:module的几个配置变量。exports={publicPath:“dist”,//输出文件目录lintOnSave:false,//保存时eslint检查ass...

VMP加壳(三):VMP壳爆破实战-破解某编辑类软件

同时,记住在内存视图中向VMP0段提供断点后继续单击确认按钮,以查看调用方法的位置(此处的返回地址为0x5E01E9),但此处返回push(或vm条目)。这个地方会是验证码检测的入口吗!通过字符串查找各种键提示(sn、不正确注册等)的内存:通过访问断点查找键代码,然后找出调用该函数的函数,这与JCC指令的距离更远。...

面试了一个 31岁的iOS开发者,思绪万千,30岁以上的程序员还有哪些出路?

前言之前HR给了我一份简历,刚看到简历的第一眼,31岁?31岁,iOS开发工程师,工作经历7年,5年左右都在外包公司,2年左右在创业公司。iOS开发工程师这块,还是很少遇到30岁以上的开发,正好,来了一个30岁的开发,说实话,对我来说,还是蛮期待的,希望对我有所启示。这样的过程持续了半个小时那么年过350岁的程序员还有出路吗?作为一个8年的iOS开发,而且几...

docker.service启动失败:Unit not found的原因及解决办法

解决方案是删除/usr/lib/systemd/system/docker.service的[UNIT]中包含的dockersocket,然后重新加载systemctldaemon,最后是systemctlstartdocker.service。启动成功。在类似的情况下,docker.socket缺失,但新版本需要docker.seocket。这是因为Fla...

【JVM】元空间详解 Metaspace

nocs。JpgNoKlassisMetaspaceNoKlassinMetaspaces专用于存储其他与klass相关的内容,如方法、常量池等。它可以由多个不连续的存储器组成。在元空间GC之后,还将调整阈值。默认情况下,MaxMetaspaceSize基本上是无限的,因为大多数元空间都是在本地内存中分配的,但它仍然受到本地内存大小的限制。为了防止元空间的无...

js获取移动端设备信息(IMEM,IMIS,手机型号,系统版本,浏览器信息等)

方法1:HTML+打包方法、附加配置和使用指定方法打包是可用属性:imei:device的国际移动设备ID imsi:device的国际移动用户ID型号:device的型号供应商:device制造商uuid:device唯一标识参考地址:http://www.html5plus.org/doc/zh_cn/device.html方法2:引用插件mobile-...