这是悦乐书的第234次更新,第247篇原创

01 看题和准备

今天介绍的是LeetCode算法题中Easy级别的第101题(顺位题号是455)。假设你是一个很棒的父母,并想给你的孩子一些饼干。但是,你应该给每个孩子一个饼干。每个孩子我都有一个贪婪因子gi,这是孩子满意的cookie的最小尺寸;每个cookie j的大小为sj。如果sj> = gi,我们可以将cookie j分配给孩子i,而孩子我将满足。您的目标是最大化满足您孩子的数量并输出。例如:

输入:[1,2,3],[1,1]

输出:1

说明:您有3个孩子和2个cookie。 3个孩子的贪婪因素是1,2,3。即使你有2个饼干,因为它们的大小都是1,你只能满足贪心因子是1的那个孩子。所以输出1。

输入:[1,2],[1,2,3]

输出:2

说明:您有2个孩子和3个cookie。 2个孩子的贪婪因素是1,2。你有3个饼干,它们的大小足以满足所有孩子,你需要输出2。

注意:

  • 你可以假设贪婪因子总是为正数。

  • 您不能为一个孩子分配多个cookie。

本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。

02 解题

题目的大意是这样的:有两数组g和s,s中的元素要大于等于g中的元素,才能记数加1,如果小于g中的当前元素,就需要从s中找下一个元素继续比较,前提是两数组都是已经排过序的。

特殊情况:如果g或着s中的某一个为空数组,直接返回0。

正常情况:定义一个记数变量count,使用Arrays.sort方法将两数组排序,使用for循环或者while循环同时遍历两数组的元素,依次进行比较,如果s中的当前元素大于等于g中的当前元素,count自加1,两个指针分别向前移动一个单位;反之s中的当前元素小于g中的当前元素,s的指针向前移动一个单位,g的指针保持不动,直到其中一个数组的元素被遍历完。最后返回count。

时间复杂度是O(n log(n)),空间复杂度是O(1)。

public int findContentChildren(int[] g, int[] s) {
if (g.length < 1 || s.length < 1) {
return 0;
}
int count = 0;
Arrays.sort(s);
Arrays.sort(g);
int len = s.length, len2 = g.length;
for (int i=0, j=0; i<len && j<len2; ) {
if (s[i] >= g[j]) {
count++;
i++;
j++;
} else {
i++;
}
}
return count;
}

03 小结

算法专题目前已日更超过三个月,算法题文章101+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

LeetCode算法题-Assign Cookies(Java实现)的更多相关文章

  1. LeetCode算法题-Heaters(Java实现)

    这是悦乐书的第239次更新,第252篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第106题(顺位题号是475).冬天来了!您在比赛期间的第一份工作是设计一个固定温暖半径 ...

  2. LeetCode算法题-Sqrt(Java实现)

    这是悦乐书的第158次更新,第160篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第17题(顺位题号是69). 计算并返回x的平方根,其中x保证为非负整数. 由于返回类型 ...

  3. LeetCode算法题-Subdomain Visit Count(Java实现)

    这是悦乐书的第320次更新,第341篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第189题(顺位题号是811).像"discuss.leetcode.com& ...

  4. LeetCode算法题-Number of Lines To Write String(Java实现)

    这是悦乐书的第319次更新,第340篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第188题(顺位题号是806).我们要将给定字符串S的字母从左到右写成行.每行最大宽度为 ...

  5. LeetCode算法题-Unique Morse Code Words(Java实现)

    这是悦乐书的第318次更新,第339篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第186题(顺位题号是804).国际莫尔斯电码定义了一种标准编码,其中每个字母映射到一系 ...

  6. LeetCode算法题-Rotate String(Java实现)

    这是悦乐书的第317次更新,第338篇原创 在开始今天的算法题前,说几句,今天是世界读书日,推荐两本书给大家,<终身成长>和<禅与摩托车维修艺术>,值得好好阅读和反复阅读. 0 ...

  7. LeetCode算法题-Rotated Digits(Java实现)

    这是悦乐书的第316次更新,第337篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第185题(顺位题号是788).如果一个数字经过180度旋转后,变成了一个与原数字不同的 ...

  8. LeetCode算法题-Letter Case Permutation(Java实现)

    这是悦乐书的第315次更新,第336篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第184题(顺位题号是784).给定一个字符串S,将每个字母单独转换为小写或大写以创建另 ...

  9. LeetCode算法题-Minimum Distance Between BST Nodes(Java实现-四种解法)

    这是悦乐书的第314次更新,第335篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第183题(顺位题号是783).给定具有根节点值的二叉搜索树(BST),返回树中任何两个 ...

随机推荐

  1. 解放双手—Cobbler批量自动化部署多版本系统

    1 Cobbler  介绍 Cobbler 是一个 Linux 服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理 DHCP,DNS 等.Cobble ...

  2. 【从零开始自制CPU之学习篇06】寄存器

    上一篇文章学习了总线的相关知识,途中ABC当时假设为一个个的8位寄存器.这一篇要学习怎么构建这个寄存器. 这分为两个三个部分,数据输入,寄存器,数据输出.首先不管输出,来看数据输入和寄存器这两个部分. ...

  3. 『Two 树的直径求解及其运用』

    树的直径 我们先来认识一下树的直径. 树是连通无环图,树上任意两点之间的路径是唯一的.定义树上任意两点\(u, v\)的距离为\(u\)到\(v\)路径上边权的和.树的直径\(MN\)为树上最长路径, ...

  4. 从锅炉工到AI专家(5)

    图像识别基本原理 从上一篇开始,我们终于进入到了TensorFlow机器学习的世界.采用第一个分类算法进行手写数字识别得到了一个91%左右的识别率结果,进展可喜,但成绩尚不能令人满意. 结果不满意的原 ...

  5. HBase学习-HBase原理

    1.系统架构 1.1 图解   从HBase的架构图上可以看出,HBase中的组件包括Client.Zookeeper.HMaster.HRegionServer.HRegion.Store.MemS ...

  6. Select默认选择后台参数

    之前写过一个这样的方法,后来需求开发中,发现了方法的BUG,然后我又重新找了一种方法,今天来记录一下. 先声明前台 <select name="type" class=&qu ...

  7. Linux中more和less命令用法

    一.more命令 more功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 ...

  8. javascript基础修炼(5)—Event Loop(Node.js)

    开发者的javascript造诣取决于对[动态]和[异步]这两个词的理解水平. 一. 一道考察异步知识的面试题 题目是这样的,要求写出下面代码的输出: setTimeout(() => { co ...

  9. WebBrowser Cookie

    WebBrowser的Cookie操作 .在WebBrowser中获取Cookie CookieContainer myCookieContainer = new CookieContainer(); ...

  10. [日常] imap协议读取邮件

    telnet imap.sina.net 143 A01 LOGIN shihan@appdev.sinanet.com 密码 A02 list "" * //列出邮件夹 * LI ...