这是悦乐书的第304次更新,第323篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第172题(顺位题号是724).给定一个整数nums数组,编写一个返回此数组的"pivot"索引的方法.我们将pivot索引定义为索引,其中索引左边的数字之和等于索引右边的数字之和.如果不存在这样的索引,我们应该返回-1. 如果有多个数据透视索引,则应返回最左侧的数据透视索引.例如: 输入:nums = [1,7,3,6,5,6] 输出:3 说明:索引3左侧的数字之和(num…
这是悦乐书的第317次更新,第338篇原创 在开始今天的算法题前,说几句,今天是世界读书日,推荐两本书给大家,<终身成长>和<禅与摩托车维修艺术>,值得好好阅读和反复阅读. 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第186题(顺位题号是796).给定两个字符串A和B,在A上进行移位操作,规则是将A最左边的字符移动到最右边去.例如,如果A ='abcde',那么在A上移位一次后,它将是'bcdea'.当且仅当A在A上移位一定次数后可以变为B时返回True.…
这是悦乐书的第300次更新,第319篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第168题(顺位题号是707).设计链表的实现.您可以选择使用单链表或双链表.单链表中的节点应该具有两个属性:val 和 next.val 是当前节点的值,next 是指向下一个节点的指针/引用.如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点.假设链表中的所有节点都是 0-index 的.在链表类中实现这些功能: get(index):获取链表中第 index…
这是悦乐书的第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 说明:通过最多修改一个…
这是悦乐书的第248次更新,第261篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第115题(顺位题号是506).根据N名运动员的得分,找到他们的相对等级和得分最高的三个人,他们将获得奖牌:"金牌","银牌"和"铜牌".例如: 输入:[5,4,3,2,1] 输出:["Gold Medal","Silver Medal","Bronze Medal",&quo…
这是悦乐书的第230次更新,第242篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第97题(顺位题号是443).给定一组字符,就地压缩它.压缩后的长度必须始终小于或等于原始数组.数组的每个元素都应该是长度为1的字符(不是int).在就地修改输入数组后,返回数组的新长度.例如: 输入:["a","a","b","b","c","c","c"…
这是悦乐书的第216次更新,第229篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第84题(顺位题号是401).二进制手表顶部有4个LED,代表小时(0-11),底部的6个LED代表分钟(0-59).每个LED代表一个零或一个,右侧的最低有效位.给定非负整数n表示当前打开的LED数量,返回手表可能代表的所有可能时间.例如: 输入:n = 1 输出:["1:00","2:00","4:00","8:00&qu…
这是悦乐书的第215次更新,第228篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第83题(顺位题号是400).找到无限整数序列的第n个数字1,2,3,4,5,6,7,8,9,10,11 ......例如: 输入:3 输出:3 输入:11 输出:0 说明:序列1,2,3,4,5,6,7,8,9,10,11 ......的第11位是0,它是数字10的一部分. 注意:n为正整数且符合32位有符号整数(n <2^31)的范围. 本次解题使用的开发工具是eclipse,jd…
这是悦乐书的第201次更新,第211篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第67题(顺位题号是283).给定一个数组nums,写一个函数将所有0移动到它的末尾,同时保持非零元素的相对顺序.例如: 输入:[0,1,0,3,12] 输出:[1,3,12,0,0] 注意: 您必须在不制作数组副本的情况下就地执行此操作. 最小化操作总数. 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试. 02…
这是悦乐书的第200次更新,第209篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第65题(顺位题号是268).给定一个包含n个不同数字的数组,取自0,1,2,...,n,找到数组中缺少的数字.例如: 输入:[3,0,1] 输出:2 输入:[9,6,4,2,3,5,7,0,1] 输出:8 注意:您的算法应该以线性运行时复杂性运行. 你能用恒定的额外空间复杂度来实现吗? 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用…
这是悦乐书的第188次更新,第190篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第47题(顺位题号是202).编写算法以确定数字是否"幸福". 幸福数字是由以下过程定义的数字:从任何正整数开始,将数字替换为其数字的平方和,并重复该过程,直到最后数字等于1.这个过程以1结尾的那些数字是幸福的数字.如果陷入无限循环则不是幸福数字.例如: 输入:19 输出:true 说明: 1x1 + 9x9 = 82 8x8 + 2x2 = 68 6x6 + 8x8 = 1…
这是悦乐书的第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…
这是悦乐书的第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的下属,但该关系不是直接的.现在,根据公司的员工…
这是悦乐书的第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…
这是悦乐书的第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…