- 博客(84)
- 收藏
- 关注
原创 LeetCode刷题记录——第643题(子数组最大平均数)
题目描述给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。示例 1:输入: [1,12,-5,-6,50,3], k = 4输出: 12.75解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75思路分析本题考察的就是一个固定窗口求和,然后窗口的移动关键步骤为: res = res - nums[i] + nums[i+k]...
2019-02-21 10:26:24
345
原创 LeetCode刷题记录——第633题(平方数之和)
题目描述给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。示例1:输入: 5输出: True解释: 1 * 1 + 2 * 2 = 5示例2:输入: 3输出: False思路分析如果输入的 c 能够直接分解为一个整数的平方,返回 True如果不行,很正常的想法就是用到二分法来找到需要的数,如果两个数平方的和大于 c,将hig...
2019-02-20 09:27:23
1014
原创 LeetCode刷题记录——第628题(三个数的最大乘积)
题目描述给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例 1:输入: [1,2,3]输出: 6示例 2:输入: [1,2,3,4]输出: 24注意:给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。思路分析先对列表进行排序最大的可能是 n...
2019-02-20 09:18:51
340
原创 LeetCode刷题记录——第620题(有趣的电影)
题目描述某城市开了一家新的电影院,吸引了很多人过来看电影。该电影院特别注意用户体验,专门有个 LED显示板做电影推荐,上面公布着影评和相关电影描述。作为该电影院的信息部主管,您需要编写一个 SQL查询,找出所有影片描述为非 boring (不无聊) 的并且 id 为奇数 的影片,结果请按等级 rating 排列。例如,下表 cinema:±--------±----------±-----...
2019-02-19 09:45:46
233
原创 LeetCode刷题记录——第605题(种花问题)
题目描述假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回False。示例 1:输入: flowerbed = [1,0,0,0,1], n = 1...
2019-02-19 09:34:01
451
原创 LeetCode刷题记录——第599题(两个列表的最小索引总和)
题目描述假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设总是存在一个答案。示例 1:输入:[“Shogun”, “Tapioca Express”, “Burger King”, “KFC”][“Piatt...
2019-02-18 10:57:42
528
原创 LeetCode刷题记录——第598题(范围求和)
题目描述给定一个初始元素全部为 0,大小为 m*n 的矩阵 M 以及在 M 上的一系列更新操作。操作用二维数组表示,其中的每个操作用一个含有两个正整数 a 和 b 的数组表示,含义是将所有符合 0 <= i < a 以及 0 <= j < b 的元素 M[i][j] 的值都增加 1。在执行给定的一系列操作后,你需要返回矩阵中含有最大整数的元素个数。示例 1:输入...
2019-02-18 10:31:11
390
原创 LeetCode刷题记录——第596题(超过5名学生的课)
题目描述有一个courses 表 ,有: student (学生) 和 class (课程)。请列出所有超过或等于5名学生的课。例如,表:±--------±-----------+| student | class |±--------±-----------+| A | Math || B | English || C ...
2019-02-17 15:17:35
207
原创 LeetCode刷题记录——第595题(大的国家)
这里有张 World 表±----------------±-----------±-----------±-------------±--------------+| name | continent | area | population | gdp |±----------------±-----------±-------...
2019-02-16 15:09:27
260
原创 LeetCode刷题记录——第594题(最长和谐子序列)
题目描述和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。示例 1:输入: [1,3,2,2,5,2,3,7]输出: 5原因: 最长的和谐数组是:[3,2,2,2,3].思路分析利用collections.Counter,将列表统计建立字典,key为列表中的值,value为相应的值出现的...
2019-02-16 14:59:16
1504
原创 LeetCode刷题记录——第575题(分糖果)
题目描述给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。示例 1:输入: candies = [1,1,2,2,3,3]输出: 3解析: 一共有三种种类的糖果,每一种都有两个。最优分配方案:妹妹获得[1,2,3],弟弟也获得[1,2,3]。这样使妹妹获得糖果的种类数最多...
2019-02-15 16:57:07
319
原创 LeetCode刷题记录——第566题(重塑矩阵)
题目描述在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。示例 1:输入:...
2019-02-15 16:20:42
216
原创 LeetCode刷题记录——第561题(数组拆分Ⅰ)
题目描述给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。示例 1:输入: [1,4,3,2]输出: 4解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4).思路分析用res记录最终结果将nums原地排序...
2019-02-13 18:24:29
226
原创 LeetCode刷题记录——第557题(反转字符串中的单词Ⅲ)
题目描述给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: “Let’s take LeetCode contest”输出: “s’teL ekat edoCteeL tsetnoc”注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。思路分析用inter记录将s字符串分分割,形成一个列表。遍历int...
2019-02-13 16:57:30
231
原创 LeetCode刷题记录——第551题(学生出勤记录Ⅰ)
题目描述给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:‘A’ : Absent,缺勤‘L’ : Late,迟到‘P’ : Present,到场如果一个学生的出勤记录中不超过一个’A’(缺勤)并且不超过两个连续的’L’(迟到),那么这个学生会被奖赏。你需要根据这个学生的出勤记录判断他是否会被奖赏。示例 1:输入: “PPALLP”输出: True示例...
2019-02-11 22:03:53
376
原创 LeetCode刷题记录——第541题(反转字符串Ⅱ)
题目描述给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。示例:输入: s = “abcdefg”, k = 2输出: “bacdfeg”思路分析如果字符串s长度小于k,那么直接反转整个字符串如...
2019-02-11 22:00:52
219
原创 LeetCode刷题记录——第532题(数组中的K-diff数对)
题目描述给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对。这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k.示例 1:输入: [3, 1, 4, 1, 5], k = 2输出: 2解释: 数组中有两个 2-diff 数对, (1, 3) 和 (3, 5)。尽管数组中有两个1,但我们只...
2019-02-10 21:24:52
262
原创 LeetCode刷题记录——第521题(最长特殊序列Ⅰ)
题目描述给定两个字符串,你需要从这两个字符串中找出最长的特殊序列。最长特殊序列定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列)。子序列可以通过删去字符串中的某些字符实现,但不能改变剩余字符的相对顺序。空序列为所有字符串的子序列,任何字符串为其自身的子序列。输入为两个字符串,输出最长特殊序列的长度。如果不存在,则返回 -1。示例 :输入: “aba”, “cdc”...
2019-02-10 20:57:01
408
原创 LeetCode刷题记录——第520题(检测大写字母)
题目描述给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如"USA"。单词中所有字母都不是大写,比如"leetcode"。如果单词不只含有一个字母,只有首字母大写, 比如 “Google”。否则,我们定义这个单词没有正确使用大写字母。示例 1:输入: “USA”输出: True示例 2:输入: “Fla...
2019-02-09 22:56:42
250
原创 LeetCode刷题记录——第509题(斐波那契数)
题目秒数斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定 N,计算 F(N)。示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1 + 0 ...
2019-02-09 22:53:08
375
原创 LeetCode刷题记录——第506题(相对名次)
题目描述给出 N 名运动员的成绩,找出他们的相对名次并授予前三名对应的奖牌。前三名运动员将会被分别授予 “金牌”,“银牌” 和“ 铜牌”(“Gold Medal”, “Silver Medal”, “Bronze Medal”)。(注:分数越高的选手,排名越靠前。)示例 1:输入: [5, 4, 3, 2, 1]输出: [“Gold Medal”, “Silver Medal”, “B...
2019-02-05 11:08:01
399
原创 LeetCode刷题记录——第504题(七进制数)
题目描述给定一个整数,将其转化为7进制,并以字符串形式输出。示例 1:输入: 100输出: “202”示例 2:输入: -7输出: “-10”注意: 输入范围是 [-1e7, 1e7] 。思路分析如果num为0,返回字符串0num存在正负,所以统一将num转换为正数temptemp除以七,记录其余数,余数就是需要放进res字符串中的,同时,记录用整数部分代码示...
2019-02-03 22:54:58
257
原创 LeetCode刷题记录——第500题(键盘行)
题目描述给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。示例:输入: [“Hello”, “Alaska”, “Dad”, “Peace”]输出: [“Alaska”, “Dad”]思路分析用keyset记录键盘中的每一行遍历keyset列表中的所有元素,然后依次遍历words中的单词,如果去重后的单词是key的子集的话,说明选中的word是可以用同一行打出的,a...
2019-02-03 22:14:42
410
原创 LeetCode刷题记录——第492题(构造矩形)
题目描述作为一位web开发者, 懂得怎样去规划一个页面的尺寸是很重要的。 现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面。要求:你设计的矩形页面必须等于给定的目标面积。宽度 W 不应大于长度 L,换言之,要求 L >= W 。长度 L 和宽度 W 之间的差距应当尽可能小。你需要按顺序输出你设计的页面的长度 L 和宽度 W。...
2019-02-02 16:52:21
255
原创 LeetCode刷题记录——第485题(最大连续1的个数)
题目描述给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.思路分析用result记录全局的结果,cur 记录当前的连续个数便利nums中的元素,如果碰到第一个nums不为0的元素,则cur += 1,出现断层时(后续有0元素出现)将cur和记录全局的res...
2019-02-01 15:33:08
321
原创 LeetCode刷题记录——第482题(密钥格式化)
题目描述给定一个密钥字符串S,只包含字母,数字以及 ‘-’(破折号)。N 个 ‘-’ 将字符串分成了 N+1 组。给定一个数字 K,重新格式化字符串,除了第一个分组以外,每个分组要包含 K 个字符,第一个分组至少要包含 1 个字符。两个分组之间用 ‘-’(破折号)隔开,并且将所有的小写字母转换为大写字母。给定非空字符串 S 和数字 K,按照上面描述的规则进行格式化。示例 1:输入: S ...
2019-02-01 15:10:24
337
原创 LeetCode刷题记录——第476题(数字的补数)
题目描述给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。注意:给定的整数保证在32位带符号整数的范围内。你可以假定二进制数不包含前导零位。示例 1:输入: 5输出: 2解释: 5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。示例 2:输入: 1输出: 0解释: 1的二进制表示为1(没有前导零位),其补数为0。所以你需要输出0。...
2019-01-31 22:50:21
151
原创 LeetCode刷题记录——第475题(供暖器)
题目描述冬季已经来临。 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。现在,给出位于一条水平线上的房屋和供暖器的位置,找到可以覆盖所有房屋的最小加热半径。所以,你的输入将会是房屋和供暖器的位置。你将输出供暖器的最小加热半径。说明:给出的房屋和供暖器的数目是非负数且不会超过 25000。给出的房屋和供暖器的位置均是非负数且不会超过10^9。只要房屋位于供暖器的半径内(包括在边...
2019-01-31 22:34:25
679
原创 LeetCode刷题记录——第463题(岛屿的周长)
题目描述给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。...
2019-01-22 20:16:36
423
原创 LeetCode刷题记录——第461题(汉明距离)
题目描述两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0)思路分析首先是要将x,y转化为2进制,但是要从第三项开始取,前面的0b不要,而且最后需要填充...
2019-01-22 19:57:52
284
原创 LeetCode刷题记录——第455题(分发饼干)
题目描述假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。注意:你可以假设胃口值为正...
2019-01-21 14:51:41
251
原创 LeetCode刷题记录——第453题(最小移动次数使数组元素相等)
题目描述给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动可以使 n - 1 个元素增加 1。示例:输入:[1,2,3]输出:3解释:只需要3次移动(注意每次移动会增加两个元素的值):[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]思路分析移动一个元素使得 n - 1 个元素增...
2019-01-21 13:51:09
391
原创 LeetCode刷题记录——第448题(找到所有数组中消失的数字)
题目描述给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]思路分析因...
2019-01-20 14:00:29
245
原创 LeetCode刷题记录——第443题(压缩字符串)
题目描述给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。在完成原地修改输入数组后,返回数组的新长度。进阶:你能否仅使用O(1) 空间解决问题?示例 1:输入:[“a”,“a”,“b”,“b”,“c”,“c”,“c”]输出:返回6,输入数组的前6个字符应该是:[“a”,“2”,“b”...
2019-01-20 13:53:05
349
原创 LeetCode刷题记录——第441题(排列硬币)
题目描述你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。给定一个数字 n,找出可形成完整阶梯行的总行数。n 是一个非负整数,并且在32位有符号整型的范围内。示例 1:n = 5硬币可排列成以下几行:¤¤ ¤¤ ¤因为第三行不完整,所以返回2.示例 2:n = 8硬币可排列成以下几行:¤¤ ¤¤ ¤ ¤¤ ¤因为第四...
2019-01-20 13:22:42
403
原创 LeetCode刷题记录——第414题(第三大的数)
题目描述给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。示例 1:输入: [3, 2, 1]输出: 1解释: 第三大的数是 1.示例 2:输入: [1, 2]输出: 2解释: 第三大的数不存在, 所以返回最大的数 2 .示例 3:输入: [2, 2, 3, 1]输出: 1解释: 注意,要求返回第三大的...
2019-01-19 11:26:37
177
原创 LeetCode刷题记录——第412题(Fizz Buzz)
题目描述写一个程序,输出从 1 到 n 数字的字符串表示。如果 n 是3的倍数,输出“Fizz”;如果 n 是5的倍数,输出“Buzz”;如果 n 同时是3和5的倍数,输出 “FizzBuzz”。示例:n = 15,返回:[“1”,“2”,“Fizz”,“4”,“Buzz”,“Fizz”,“7”,“8”,“Fizz”,“Buzz”,“11...
2019-01-19 11:21:10
191
原创 LeetCode刷题记录——第409题(最长回文串)
题目描述给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:“abccccdd”输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。思路分析能够构造的最长回文串结构,肯定是对称的,...
2019-01-19 11:07:03
286
原创 LeetCode刷题记录——第389题(找不同)
题目描述给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例:输入:s = “abcd”t = “abcde”输出:e解释:‘e’ 是那个被添加的字母。思路分析目的是找出t中被添加的那个字符,思路是建立一个新的字典,key为s中对应的字母,value为出现的次数。第二...
2019-01-13 13:59:59
202
原创 LeetCode刷题记录——第387题(字符串中的第一个唯一字符)
题目描述给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = “leetcode”返回 0.s = “loveleetcode”,返回 2.思路分析关键问题在于,如何找到第一个不重复字符。可以新建一个字典,用key表示对应s中的字符,value表示出现的次数,如果第一次出现,则往后新建key,如果不是第一次出现,value += ...
2019-01-12 18:36:58
201
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅