这是悦乐书的第183次更新,第185篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第42题(顺位题号是172).给定一个整数n,返回n!中的尾随零数.例如: 输入:3 输出:0 说明:3! = 6,没有尾随零. 输入:5 输出:1 说明:5! = 120,一个尾随零. 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试. 02 第一种解法 特殊情况:当n小于等于0的时候,直接返回0. 先把n的阶乘…
这是悦乐书的第317次更新,第338篇原创 在开始今天的算法题前,说几句,今天是世界读书日,推荐两本书给大家,<终身成长>和<禅与摩托车维修艺术>,值得好好阅读和反复阅读. 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第186题(顺位题号是796).给定两个字符串A和B,在A上进行移位操作,规则是将A最左边的字符移动到最右边去.例如,如果A ='abcde',那么在A上移位一次后,它将是'bcdea'.当且仅当A在A上移位一定次数后可以变为B时返回True.…
这是悦乐书的第316次更新,第337篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第185题(顺位题号是788).如果一个数字经过180度旋转后,变成了一个与原数字不同的数,这样的数被称为好数字.数字中的每一位都必须经过旋转.旋转的规则是:0,1,8这三个数旋转后还是自身,2旋转后变为5,5旋转后变为2,6旋转后变为9,9旋转后变为6,剩下的3,4,7旋转后并不能转成其他数字,是无效的.现在给出正数N,从1到N的好数字一共有多少个?例如: 输入:10 输出:4 说明…
这是悦乐书的第312次更新,第333篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第181题(顺位题号是766).如果从左上角到右下角的每个对角线具有相同的元素,则矩阵是Toeplitz.现在给定一个M×N矩阵,当且仅当矩阵是Toeplitz时返回True.例如: 输入:矩阵= [[1,2,3,4],[5,1,2,3],[9,5,1,2]] 输出:true 说明:在上面的网格中,对角线是:"[9]","[5,5]","[1,1…
这是悦乐书的第306次更新,第325篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第173题(顺位题号是733).图像由二维整数数组表示,每个整数表示图像的像素值(从0到65535).给定表示泛洪填充的起始像素(行和列)的坐标(sr,sc)和像素值newColor,进行"泛洪填充"图像. 要执行"泛洪填充",请考虑起始像素,以及与起始像素相同颜色的起始像素4向连接的任何像素,以及与这些像素4向相连的任何像素(也使用与起始像素),依此类推…
这是悦乐书的第282次更新,第299篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第150题(顺位题号是661).给定表示图像灰度的2D整数矩阵M,您需要设计一个平滑器以使每个单元的灰度变为所有8个周围单元及其自身的平均灰度(向下舍入).如果一个单元的周围单元少于8个,那么尽可能多地使用单元.例如: 输入:[[1,1,1],[1,0,1][1,1,1]] 输出:[[0,0,0],[0,0,0],[0,0,0]] 说明: 对于点(0,0),(0,2),(2,0),(2…
这是悦乐书的第300次更新,第319篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第168题(顺位题号是707).设计链表的实现.您可以选择使用单链表或双链表.单链表中的节点应该具有两个属性:val 和 next.val 是当前节点的值,next 是指向下一个节点的指针/引用.如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点.假设链表中的所有节点都是 0-index 的.在链表类中实现这些功能: get(index):获取链表中第 index…
这是悦乐书的第299次更新,第318篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第167题(顺位题号是706).在不使用任何内置哈希表库的情况下设计HashMap.具体而言,你的设计应包括以下功能: put(key,value):将一个(key,value)对插入HashMap.如果该值已存在于HashMap中,请更新该值. get(key):返回指定键映射到的值,如果此映射不包含键的映射,则返回-1. remove(key):如果此映射包含键的映射,则删除值键的…
这是悦乐书的第298次更新,第317篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第166题(顺位题号是705).不使用任何内建的hash表库设计一个hash集合,应包含以下功能: add(value):向哈希集合中插入一个值. contains(value) :返回哈希集合中是否存在这个值. remove(value):将给定值从哈希集合中删除.如果哈希集合中没有这个值,什么也不做. 例如: MyHashSet hashSet = new MyHashSet();…
这是悦乐书的第297次更新,第316篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第165题(顺位题号是704).给定n个元素的排序(按升序)整数数组nums和目标值,编写一个函数来搜索nums中的目标.如果target存在,则返回其索引,否则返回-1.例如: 输入:nums = [-1,0,3,5,9,12],目标= 9 输出:4 说明:9存在于nums中,其索引为4 输入:nums = [-1,0,3,5,9,12],target = 2 输出:-1 说明:2在…
这是悦乐书的第291次更新,第309篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第159题(顺位题号是690).定义员工信息的数据结构,其中包括员工的唯一ID,他的重要性值以及他的直接下属ID.例如,员工1是员工2的领导者,员工2是员工3的领导者.他们的重要性值分别为15,10和5.然后,员工1具有[1,15,[2]]等数据结构,员工2具有[2,10,[3]],员工3具有[3,5,[]].请注意,虽然员工3也是员工1的下属,但该关系不是直接的.现在,根据公司的员工…
这是悦乐书的第288次更新,第305篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第156题(顺位题号是682).你现在是棒球比赛点记录器.给定一个字符串列表,每个字符串可以是以下4种类型之一: 整数(一轮的得分):直接表示你在这轮中获得的积分数. "+"(一轮的得分):表示你在这一轮得到的分数是最后两个有效回合分数的总和. "D"(一轮得分):表示你在这一轮得到的分数是最后一轮有效回合分数的加倍数据. "C"(一项…
这是悦乐书的第283次更新,第300篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第151题(顺位题号是665).给定一个包含n个整数的数组,您的任务是通过修改最多1个元素来检查它是否可以变为非递减.如果array [i] <= array [i + 1],且0 <= i <n,则我们定义一个数组是非递减的.例如: 输入:[4,2,3] 输出:true 说明:可以修改4为1或2以获得非递减数组. 输入:[4,2,1] 输出:false 说明:通过最多修改一个…
这是悦乐书的第279次更新,第295篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第147题(顺位题号是645).集合S最初包含从1到n的数字. 但不幸的是,由于数据错误,集合中的一个数字被复制到集合中的另一个数字,这导致重复一个数字而丢失另一个数字.给定一个数组nums,表示错误后该集的数据状态.要求先找到两次出现的数字,然后找到丢失的数数字,最后以数组的形式返回它们.例如: 输入:nums = [1,2,2,4] 输出:[2,3] 注意: 给定的数组大小将在[2…
这是悦乐书的第266次更新,第279篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第133题(顺位题号是575).给定具有偶数长度的整数数组,其中该数组中的不同数字表示不同种类的糖果. 每个数字表示相应种类的一种糖果. 您需要将这些糖果平均分配给哥哥妹妹. 返回妹妹可以获得的最多种类数量的糖果.例如: 输入:糖果= [1,1,2,2,3,3] 输出:3 说明:有三种不同的糖果(1,2和3),每种糖果两种.最佳分配:妹妹有糖果[1,2,3],哥哥也有糖果[1,2,3]…
这是悦乐书的第251次更新,第264篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第118题(顺位题号是520).给定一个单词,你需要判断其中大写字母的使用是否正确.当下列情况之一成立时,我们将单词中大写字母的用法定义为正确: 这个单词中的所有字母都是大写字母,如"USA". 这个单词中的所有字母都不是大写字母,如"leetcode". 如果它有多个字母,只有首字母是大写字母,如"Google". 否则,我们定义该单…
这是悦乐书的第250次更新,第263篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第117题(顺位题号是509).Fibonacci数字,通常表示为F(n),形成一个称为Fibonacci序列的序列,这样每个数字是前两个数字的总和,从0和1开始.即,F(0)= 0,F(1)= 1.对于N> 1,F(N)= F(N-1)+ F(N-2).给定N,计算F(N).例如: 输入:2 输出:1 说明:F(2)= F(1)+ F(0)= 1 + 0 = 1. 输入:3 输出:2…
这是悦乐书的第249次更新,第262篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第116题(顺位题号是507).我们定义Perfect Number是一个正整数,它等于除了它自己之外的所有正除数之和.现在,给定一个整数n,编写一个函数,当它是一个完美数字时返回true,否则返回false.例如: 输入:28 输出:true 说明:28 = 1 + 2 + 4 + 7 + 14 注意:输入数字n不会超过100,000,000.(1E8) 本次解题使用的开发工具是ec…
这是悦乐书的第248次更新,第261篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第115题(顺位题号是506).根据N名运动员的得分,找到他们的相对等级和得分最高的三个人,他们将获得奖牌:"金牌","银牌"和"铜牌".例如: 输入:[5,4,3,2,1] 输出:["Gold Medal","Silver Medal","Bronze Medal",&quo…
这是悦乐书的第247次更新,第260篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第114题(顺位题号是504).给定一个整数,返回其基数为7的字符串表示.例如: 输入:100 输出:"202" 输入:-7 输出:"-10" 注意:输入范围为[-1e7,1e7]. 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试. 02 第一种解法 直接使用包装类Integer的t…
这是悦乐书的第245次更新,第258篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第112题(顺位题号是500).给定一个单词列表,返回可以在美国键盘的一行上使用字母表键入的单词,如下图所示. 例如: 输入:["Hello","Alaska","Dad","Peace"] 输出:["Alaska","Dad"] 注意: 您可以多次使用键盘中的一个字符. 您可…
这是悦乐书的第240次更新,第253篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第107题(顺位题号是476).给定正整数,输出其补码数.补充策略是翻转其二进制表示的位.例如: 输入:5 输出:2 说明:5的二进制表示为101(无前导零位),其补码为010,因此需要输出2. 输入:1 输出:0 说明:1的二进制表示形式为1(无前导零位),其补码为0,因此需要输出0. 注意: 保证给定的整数适合32位有符号整数的范围. 您可以假设整数的二进制表示中没有前导零位. 本…
这是悦乐书的第238次更新,第251篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第105题(顺位题号是463).您将获得一个二维整数网格形式的地图,其中1代表土地,0代表水.网格单元水平/垂直(不是对角线)连接. 网格完全被水包围,并且恰好有一个岛(即,一个或多个连接的陆地小区). 岛上没有"湖泊"(里面的水与岛周围的水没有联系). 一个单元格是边长为1的正方形.网格为矩形,宽度和高度不超过100.确定岛的周长. 输入:[[0,1,0,0],[1,1,1…
这是悦乐书的第237次更新,第250篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第104题(顺位题号是461).两个整数之间的汉明距离是相应位不同的位置数.给定两个整数x和y,计算汉明距离. 注意:0≤x,y <2^31. 例如: 输入:x = 1,y = 4 输出:2 说明: 1(0 0 0 1) 4(0 1 0 0)          ↑    ↑ 上述箭头指向相应位不同的位置. 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7…
这是悦乐书的第235次更新,第248篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第102题(顺位题号是455).有1000个水桶,其中只有一个水桶含有毒药,其余的都没毒.它们看起来都一样.如果猪喝了那桶带有毒药的水,它会在15分钟内死亡.你需要在一小时内找出哪个桶中含有毒药的最小猪量是多少.回答这个问题,并为后续一般案例编写算法. 跟进:如果有n桶水,猪喝了带毒的水会在m分钟内死亡,那么你需要在p分钟内使用多少只猪(x)找出"毒药"桶? 只有一个带毒药的…
这是悦乐书的第234次更新,第247篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第101题(顺位题号是455).假设你是一个很棒的父母,并想给你的孩子一些饼干.但是,你应该给每个孩子一个饼干.每个孩子我都有一个贪婪因子gi,这是孩子满意的cookie的最小尺寸;每个cookie j的大小为sj.如果sj> = gi,我们可以将cookie j分配给孩子i,而孩子我将满足.您的目标是最大化满足您孩子的数量并输出.例如: 输入:[1,2,3],[1,1] 输出:1 说…
这是悦乐书的第230次更新,第242篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第97题(顺位题号是443).给定一组字符,就地压缩它.压缩后的长度必须始终小于或等于原始数组.数组的每个元素都应该是长度为1的字符(不是int).在就地修改输入数组后,返回数组的新长度.例如: 输入:["a","a","b","b","c","c","c"…
这是悦乐书的第229次更新,第241篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第96题(顺位题号是441).您想要以楼梯形状形成总共n个硬币,其中每个第k行必须具有恰好k个硬币.给定n,找到可以形成的完整楼梯行的总数.n是一个非负整数,适合32位有符号整数的范围.例如: n = 5 硬币可以形成以下行: ¤ ¤¤ ¤¤ 因为第3行不完整,我们返回2. n = 8 硬币可以形成以下行: ¤ ¤¤ ¤¤¤ ¤¤ 因为第4行不完整,我们返回3. 本次解题使用的开发工具…
这是悦乐书的第223次更新,第236篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第90题(顺位题号是415).给定两个非负整数num1和num2表示为字符串,返回num1和num2的总和. 注意: num1和num2的长度均<5100. num1和num2都只包含数字0-9. num1和num2都不包含任何前导零. 您不能使用任何内置BigInteger库或直接将输入转换为整数. 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 6…
这是悦乐书的第221次更新,第233篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第88题(顺位题号是412). 编写一个程序,输出从1到n的数字的字符串表示.但对于三的倍数,它应输出"Fizz"而不是数字,对于五的倍数,应该输出"Buzz". 对于三和五共同的倍数,应输出"FizzBuzz".例如: 输入:n = 15 输出:["1","2","Fizz"…