
Leetcode
文章平均质量分 68
Richest_li
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode 11. 盛最多水的容器
给定一个长度为 n 的整数数组 height。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。主要还是利用了短板理论:短板决定了盛水量,每次都移动短板,如果长度一样的话移哪个都行。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。输入:[1,8,6,2,5,4,8,3,7]输入:height = [1,1]原创 2024-07-24 10:09:20 · 708 阅读 · 0 评论 -
Leetcode 17. 电话号码的字母组合
输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。输入:digits = “23”输出:[“a”,“b”,“c”]输入:digits = “2”输入:digits = “”看了下 腐烂的橘子 的题解。,感觉还挺麻烦,之后研究下。原创 2024-07-24 09:57:46 · 574 阅读 · 0 评论 -
Leetcode 2824. 统计和小于目标的下标对数目
开始长度为 n 的整数数组 nums 和一个整数 target ,请你返回满足 0 <= i < j < n 且 nums[i] + nums[j] < target 的下标对 (i, j) 的数目。(0, 1) ,0 < 1 且 nums[0] + nums[1] = -4 < target。(0, 3) ,0 < 3 且 nums[0] + nums[3] = -8 < target。(0, 4) ,0 < 4 且 nums[0] + nums[4] = 0 < target。原创 2024-07-23 13:42:53 · 1151 阅读 · 0 评论 -
Leetcode 128. 最长连续序列
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。解释:最长数字连续序列是 [1, 2, 3, 4]。输入:nums = [0,3,7,2,5,8,4,6,0,1]请你设计并实现时间复杂度为 O(n) 的算法解决此问题。输入:nums = [100,4,200,1,3,2],没太看懂,晚上看看视频,先记录一下。看了下 灵茶天师府 的题解。原创 2024-07-22 17:46:03 · 462 阅读 · 0 评论 -
Leetcode 49. 字母异位词分组
输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”](Python/Java/C++/Go/JS/Rust),感觉想法差不多,但是写的要比我的简洁。输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]是由重新排列源单词的所有字母得到的一个新单词。可以按任意顺序返回结果列表。输入: strs = [“a”]给你一个字符串数组,请你将。看了下 灵茶山艾府 的题解。输出: [[“a”]]输出: [[“”]]原创 2024-07-22 16:59:50 · 623 阅读 · 0 评论 -
Leetcode 151. 反转字符串中的单词
输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的。顺序颠倒且 单词 之间用单个空格连接的结果字符串。解释:反转后的字符串中不能存在前导空格和尾随空格。输入:s = “a good example”输入:s = “the sky is blue”原创 2024-07-22 15:59:46 · 553 阅读 · 0 评论 -
Leetcode 6. Z 字形变换
之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。输入:s = “PAYPALISHIRING”, numRows = 3。输入:s = “PAYPALISHIRING”, numRows = 4。输入:s = “A”, numRows = 1。输出:“PAHNAPLSIIGYIR”输出:“PINALSIGYAHRPI”,想法差不多但是比我的这个简洁。原创 2024-07-22 15:47:01 · 854 阅读 · 0 评论 -
Leetcode 66. 加一
先将最后一位的数字 +1,使指针指向它。(1)如果前移之后指向 0 之前了,说明列表应该从 “999” 变为 “1000” 了,即需要在列表最前端加一个数字 1;1.最开始的想法是将所有数字转成字符串,字符串转成数字类型之后加一,然后再转成列表类型。(2)如果前移之后之后没有指向 0 之前,那就正常将数字 +1 就可以了。数组所表示的非负整数,在该数的基础上加一。输入:digits = [4,3,2,1]输入:digits = [1,2,3]输出:[4,3,2,2]输出:[1,2,4]原创 2024-07-22 10:28:03 · 663 阅读 · 0 评论 -
Leetcode 9. 回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则,返回 false。解释:从左向右读, 为 -121。从右向左读, 为 121-。因此它不是一个回文数。是指正序(从左向右)和倒序(从右向左)读都是一样的整数。解释:从右向左读, 为 01。因此它不是一个回文数。hello_newlife 这哥们的题解真的牛。转成字符串然后while循环。输入:x = -121。输入:x = 121。原创 2024-07-19 16:35:04 · 491 阅读 · 0 评论 -
Leetcode 202. 快乐数
使用 while 循环是肯定的了,while 循环的条件是 n > 4。原本想的是 n > 3,因为 1、2、3的平方都小于10,不会再继续了。后来发现这么想的一点也不对,凑巧把案例全都过去了。实际上,1 一直算下去都得 1;2、3、4一直循环下去相当于 2 的结果,得到的是 False。编写一个算法来判断一个数 n 是不是快乐数。看了 permanet 的题解。,感觉这才是正经解法。原创 2024-07-19 16:10:25 · 542 阅读 · 0 评论 -
Leetcode 242. 有效的字母异位词
循环遍历 t,如果对应的字符在 dict 中,且次数大于 0 ,就将次数减 1;如果字符不在 dict 中,返回 False。1.最开始的想法是先求出 s 和 t 的长度,如果不相等就直接返回 False。将 t 转换成 list ,循环遍历 s ,当循环到的字符在 list 中时,将该字符从 list 中删掉;这个想法能通过,就是有点慢。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。原创 2024-07-19 15:22:15 · 379 阅读 · 0 评论 -
Leetcode 290. 单词规律
指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。输入: pattern = “abba”, s = “dog cat cat dog”输入:pattern = “abba”, s = “dog cat cat fish”输入: pattern = “aaaa”, s = “dog cat cat dog”给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。类似做法,只不过需要在前面加上个长度的判断。原创 2024-07-19 14:24:48 · 449 阅读 · 0 评论 -
Leetcode 205. 同构字符串
设置一个 dict ,遍历字符串,如果 s 对应的字符在 dict 中,判断对应的 t 的值是否与 dict 中的 value 值相等,如果不相等的话直接就返回 False。1.最开始想的是将每个字符的出现次数都放在 defaultdict 中,如果这两个字符串所得的次数列表相等,那就说明这俩可以转换。没过的那个测试用例为:s = “bbbaaaba”, t = “aaabbbba”。想了想又加个判断条件:如果 s 对应的字符没在 dict 中,但是 t 对应的字符在 dict 中,返回 False。原创 2024-07-19 13:58:33 · 840 阅读 · 0 评论 -
Leetcode 383. 赎金信
后来想想之前的做法不能用,那只能利用 defaultdict 来计数,将两个字符串中的字符进行计数。之后再循环遍历生成的 dict,看看 ransomNote 对应的字符数量是否小于 magazine 对应的字符数量,小于的话就返回 False。给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。输入:ransomNote = “aa”, magazine = “aab”否则返回 false。,还能这么想,真的牛。原创 2024-07-18 17:28:54 · 650 阅读 · 0 评论 -
Leetcode 392. 判断子序列
遍历 t ,当 t 对应的字符和 s对应的指针字符相同时,指针后移。如果指针的长度和 s 长度相同时,即指向了 s 的后一位,则说明 s 为 t 的子序列,返回 True。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。1.求出 s 的长度,如果 s 的长度大于 t 的长度,返回 False。如果 s 的长度等于 0,返回 True。3.如果 t 遍历结束后,指针的长度还和 s 长度不相等,则说明 s 不是 t 的子序列,返回 False。原创 2024-07-18 16:50:00 · 809 阅读 · 0 评论 -
Leetcode 125. 验证回文串
2.最开始想的是,直接 while 循环遍历字符串,如果两个指针对应的字符不是字符也不是数字的,就后移或者前移。如果是大写就给它转换成小写,但是字符串中不能修改单个字符,就使用了list转换一下。如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。给你一个字符串 s,如果它是 回文串 ,返回 true;否则,返回 false。后来发现可以直接将字符串转成小写的,在生成list的时候就给转换了。解释:在移除非字母数字字符之后,s 是一个空字符串 “”。原创 2024-07-18 16:28:09 · 1014 阅读 · 0 评论 -
Leetcode 28. 找出字符串中第一个匹配项的下标
给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1。3.因为考虑到 haystack 中包含 needle时,first - 1 = last。4.如果 while 循环都结束了还没有返回值,说明 needle 不在 haystack 中,返回 -1。解释:“leeto” 没有在 “leetcode” 中出现,所以返回 -1。原创 2024-07-18 15:11:28 · 503 阅读 · 0 评论 -
Leetcode 14. 最长公共前缀
如果其他字符串以firstStr[0:j]为开头,就将firstStr[0:j]赋值给tmpStr,并标记flag为true。如果 j 等于 strs[i] 的长度,或者 strs[i][j]不等于strs[i][0],说明这一列的字母缺失或者不全一样,那么最长公共前缀的长度等于 j,返回 strs[0] 的长为 j 的前缀。4.如果没有中途返回,说明所有字符串都有一个等于 strs[0] 的前缀,那么最长公共前缀就是 strs[0]。输入:strs = [“dog”,“racecar”,“car”]原创 2024-07-18 14:05:09 · 626 阅读 · 0 评论 -
Leetcode 13. 罗马数字转整数
通常情况下,罗马数字中小的数字在大的数字的右边。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。然后从左到右遍历每个字符,如果 s[i] < s[i+1],就将结果减去 s[i] 代表的数字;只有在遇到特殊情况时,两个字符中左边的字符小于右边的字符,且等于右边的字符代表的数减左边字符代表的数。解释: M = 1000, CM = 900, XC = 90, IV = 4.罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。输入: s = “IV”原创 2024-07-17 15:40:34 · 728 阅读 · 0 评论 -
Leetcode 238. 除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。大致就是将数组长度为5的数组,写成5*5的矩阵。以主对角线分界,先计算下三角的各行乘积,再计算上三角的。数组 nums之中任意元素的全部前缀元素和后缀的乘积都在。我的想法直接在题目上就被否了,不能暴力输出也不能用除法。输入: nums = [-1,1,0,-3,3]输入: nums = [1,2,3,4]输出: [24,12,8,6]输出: [0,0,9,0,0]原创 2024-07-17 14:34:39 · 417 阅读 · 0 评论 -
Leetcode 122. 买卖股票的最佳时机 II
解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。输入:prices = [7,1,5,3,6,4]最大总利润为 4。原创 2024-07-17 10:26:26 · 315 阅读 · 0 评论 -
Leetcode 121. 买卖股票的最佳时机
如果第i天卖出股票,则最大利润为:该天的股价-前面天数中最小的股价。与已知的最大利润比较,如果大于则更新当前最大利润的值。解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。3)之后判断当前元素后的值是否比当前元素的值大,并且两者的差要比之前求的的最大利润大。2)两层循环,第一层就是正常的遍历数组,第二层就是遍历第一层循环的当前元素后的值。1)设置最小的价格为无穷大,最大利润为0(即设置初始值)。输入:[7,1,5,3,6,4]原创 2024-07-17 09:51:21 · 319 阅读 · 0 评论 -
Leetcode 80. 删除有序数组中的重复项 II
解释:函数应返回新长度 length = 7, 并且原数组的前七个元素被修改为 0, 0, 1, 1, 2, 3, 3。不需要考虑数组中超出新长度后面的元素。解释:函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3。删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。输入:nums = [0,0,1,1,1,1,2,3,3]输出:7, nums = [0,0,1,1,2,3,3]输入:nums = [1,1,1,2,2,3]原创 2024-07-17 09:11:44 · 792 阅读 · 0 评论 -
Leetcode 2379. 得到 K 个黑块的最少涂色次数
Leetcode 2379. 得到 K 个黑块的最少涂色次数原创 2023-03-09 21:57:23 · 612 阅读 · 1 评论 -
Leetcode 2315. 统计星号
Leetcode 2315. 统计星号原创 2023-01-29 10:33:30 · 471 阅读 · 0 评论 -
Leetcode 2299. 强密码检验器 II
Leetcode 2299. 强密码检验器 II原创 2023-01-19 17:00:06 · 1671 阅读 · 0 评论 -
Leetcode 2293. 极大极小游戏
Leetcode 2293. 极大极小游戏原创 2023-01-15 10:46:25 · 615 阅读 · 0 评论 -
Leetcode 2283. 判断一个数的数字计数是否等于数位的值
Leetcode 2283. 判断一个数的数字计数是否等于数位的值原创 2023-01-11 19:55:01 · 536 阅读 · 0 评论 -
Leetcode 1806. 还原排列的最少操作步数
Leetcode 1806. 还原排列的最少操作步数原创 2023-01-10 22:23:39 · 206 阅读 · 0 评论 -
Leetcode 2185. 统计包含给定前缀的字符串
Leetcode 2185. 统计包含给定前缀的字符串原创 2023-01-10 21:39:14 · 519 阅读 · 0 评论 -
Leetcode 2180. 统计各位数字之和为偶数的整数个数
Leetcode 2180. 统计各位数字之和为偶数的整数个数原创 2023-01-06 19:05:08 · 692 阅读 · 0 评论 -
Leetcode 2042. 检查句子中的数字是否递增
Leetcode 2042. 检查句子中的数字是否递增原创 2023-01-03 20:08:00 · 538 阅读 · 0 评论 -
Leetcode 2351. 第一个出现两次的字母
Leetcode 2351. 第一个出现两次的字母原创 2023-01-01 19:04:27 · 511 阅读 · 0 评论 -
Leetcode 2037. 使每位学生都有座位的最少移动次数
Leetcode 2037. 使每位学生都有座位的最少移动次数原创 2022-12-31 21:44:17 · 823 阅读 · 0 评论 -
Leetcode 2032. 至少在两个数组中出现的值
Leetcode 2032. 至少在两个数组中出现的值原创 2022-12-29 20:56:12 · 378 阅读 · 0 评论 -
Leetcode 2027. 转换字符串的最少操作次数
Leetcode 2027. 转换字符串的最少操作次数原创 2022-12-27 21:22:01 · 595 阅读 · 0 评论 -
Leetcode 1827. 最少操作使数组递增
Leetcode 1827. 最少操作使数组递增原创 2022-12-13 16:52:07 · 411 阅读 · 0 评论 -
Leetcode 1832. 判断句子是否为全字母句
Leetcode 1832. 判断句子是否为全字母句原创 2022-12-13 16:13:40 · 149 阅读 · 0 评论 -
Leetcode 1805. 字符串中不同整数的数目
Leetcode 1805. 字符串中不同整数的数目原创 2022-12-06 15:45:02 · 180 阅读 · 0 评论 -
Leetcode 1796. 字符串中第二大的数字
Leetcode 1796. 字符串中第二大的数字原创 2022-12-03 21:00:23 · 205 阅读 · 0 评论