
数组/字符串
文章平均质量分 64
Ashiu
这个作者很懒,什么都没留下…
展开
-
722. 删除注释
字符串/* 表示一个块注释,它表示直到下一个(非重叠)出现的*/之间的所有字符都应该被忽略。(阅读顺序为从左到右)非重叠是指,字符串/*/并没有结束块注释,因为注释的结尾与开头相重叠。删除注释后,隐含的换行符被删除,留下字符串 “ab” 用换行符分隔成数组时就是 [“ab”].输出: [“int main()”,”{ “,” “,“int a, b, c;我们保证每一个块注释最终都会被闭合, 所以在行或块注释之外的/*总是开始新的注释。字符串// 表示行注释,表示//和其右侧的其余字符应该被忽略。原创 2023-08-03 12:13:09 · 260 阅读 · 0 评论 -
2544. 交替数字和
解释:(+8) + (-8) + (+6) + (-9) + (+9) + (-6) = 0。内存消耗:12.7 MB, 在所有 Python 提交中击败了100.00%的用户。执行用时:16 ms, 在所有 Python 提交中击败了69.70%的用户。执行用时:20 ms, 在所有 Python 提交中击败了48.48%的用户。执行用时:20 ms, 在所有 Python 提交中击败了48.48%的用户。执行用时:20 ms, 在所有 Python 提交中击败了48.48%的用户。原创 2023-07-12 03:09:36 · 96 阅读 · 0 评论 -
151. 反转字符串中的单词
注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。链接:https://leetcode.cn/problems/reverse-words-in-a-string。s 中使用至少一个空格将字符串中的 单词 分隔开。解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。给你一个字符串 s ,请你反转字符串中 单词 的顺序。解释:反转后的字符串中不能存在前导空格和尾随空格。原创 2023-07-11 05:22:59 · 74 阅读 · 0 评论 -
58. 最后一个单词的长度
链接:https://leetcode.cn/problems/length-of-last-word。给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。内存消耗:13.2 MB, 在所有 Python 提交中击败了67.66%的用户。执行用时:12 ms, 在所有 Python 提交中击败了94.43%的用户。解释:最后一个单词是长度为6的“joyboy”。解释:最后一个单词是“World”,长度为5。解释:最后一个单词是“moon”,长度为4。输入:s = “Hello World”原创 2023-07-11 05:19:31 · 79 阅读 · 0 评论 -
12. 整数转罗马数字
数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为 IX。C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。解释: M = 1000, CM = 900, XC = 90, IV = 4.I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。原创 2023-07-11 05:14:41 · 67 阅读 · 0 评论 -
13. 罗马数字转整数
数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。解释: M = 1000, CM = 900, XC = 90, IV = 4.I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。输入: s = “IV”原创 2023-07-11 05:12:00 · 59 阅读 · 0 评论 -
42. 接雨水
解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。链接:https://leetcode.cn/problems/trapping-rain-water。执行用时:24 ms, 在所有 Python 提交中击败了97.76%的用户。输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]商业转载请联系官方授权,非商业转载请注明出处。输入:height = [4,2,0,3,2,5]原创 2023-07-11 05:07:49 · 49 阅读 · 0 评论 -
135. 分发糖果
执行用时:32 ms, 在所有 Python 提交中击败了91.94%的用户。n 个孩子站成一排。解释:你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。解释:你可以分别给第一个、第二个、第三个孩子分发 1、2、1 颗糖果。请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目。第三个孩子只得到 1 颗糖果,这满足题面中的两个条件。相邻两个孩子评分更高的孩子会获得更多的糖果。输入:ratings = [1,0,2]输入:ratings = [1,2,2]每个孩子至少分配到 1 个糖果。原创 2023-07-11 06:11:52 · 74 阅读 · 0 评论 -
134. 加油站
从 3 号加油站(索引为 3 处)出发,可获得 4 升汽油。你无法返回 2 号加油站,因为返程需要消耗 4 升汽油,但是你的油箱只有 3 升汽油。输入: gas = [1,2,3,4,5], cost = [3,4,5,1,2]开往 3 号加油站,你需要消耗 5 升汽油,正好足够你返回到 3 号加油站。输入: gas = [2,3,4], cost = [3,4,3]开往 0 号加油站,此时油箱有 4 - 3 + 2 = 3 升汽油。开往 1 号加油站,此时油箱有 3 - 3 + 3 = 3 升汽油。原创 2023-07-11 05:00:22 · 58 阅读 · 0 评论 -
238. 除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。链接:https://leetcode.cn/problems/product-of-array-except-self。执行用时:56 ms, 在所有 Python 提交中击败了53.10%的用户。输入: nums = [-1,1,0,-3,3]输入: nums = [1,2,3,4]输出: [24,12,8,6]输出: [0,0,9,0,0]原创 2023-07-11 04:57:52 · 55 阅读 · 0 评论 -
380. O(1) 时间插入、删除和获取随机元素
[TOC](380. O(1) 时间插入、删除和获取随机元素)原创 2023-07-11 04:49:53 · 61 阅读 · 0 评论 -
274. H 指数
根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她)至少发表了 h 篇论文,并且每篇论文 至少 被引用 h 次。计算并返回该研究者的 h 指数。由于研究者有 3 篇论文每篇 至少 被引用了 3 次,其余两篇论文每篇被引用 不多于 3 次,所以她的 h 指数是 3。解释:给定数组表示研究者总共有 5 篇论文,每篇论文相应的被引用了 3, 0, 6, 1, 5 次。输入:citations = [3,0,6,1,5]输入:citations = [1,3,1]原创 2023-07-11 04:46:53 · 67 阅读 · 0 评论 -
45. 跳跃游戏 II
每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。链接:https://leetcode.cn/problems/jump-game-ii。初始位置为 nums[0]。输入: nums = [2,3,1,1,4]解释: 跳到最后一个位置的最小跳跃数是 2。输入: nums = [2,3,0,1,4]原创 2023-07-11 04:00:58 · 63 阅读 · 0 评论 -
55. 跳跃游戏
解释:无论怎样,总会到达下标为 3 的位置。解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。链接:https://leetcode.cn/problems/jump-game。内存消耗:13.7 MB, 在所有 Python 提交中击败了95.56%的用户。执行用时:68 ms, 在所有 Python 提交中击败了42.19%的用户。输入:nums = [2,3,1,1,4]输入:nums = [3,2,1,0,4]判断你是否能够到达最后一个下标。原创 2023-07-11 03:46:19 · 68 阅读 · 0 评论 -
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]原创 2023-07-11 03:40:38 · 54 阅读 · 0 评论 -
121. 买卖股票的最佳时机
解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。解释:在这种情况下, 没有交易完成, 所以最大利润为 0。输入:prices = [7,6,4,3,1]输入:[7,1,5,3,6,4]原创 2023-07-11 03:36:22 · 60 阅读 · 0 评论 -
189. 轮转数组
商业转载请联系官方授权,非商业转载请注明出处。输入: nums = [1,2,3,4,5,6,7], k = 3。输入:nums = [-1,-100,3,99], k = 2。向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100]输出: [5,6,7,1,2,3,4]输出:[3,99,-1,-100]原创 2023-07-11 03:30:05 · 59 阅读 · 1 评论 -
169. 多数元素
给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。执行用时:28 ms, 在所有 Python 提交中击败了60.16%的用户。内存消耗:14 MB, 在所有 Python 提交中击败了96.86%的用户。你可以假设数组是非空的,并且给定的数组总是存在多数元素。输入:nums = [2,2,1,1,1,2,2]输入:nums = [3,2,3]原创 2023-07-11 03:21:19 · 51 阅读 · 1 评论 -
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]输出:5, nums = [1,1,2,2,3]// 在函数里修改输入数组对于调用者是可见的。输入:nums = [1,1,1,2,2,3]原创 2023-07-11 03:16:24 · 67 阅读 · 1 评论 -
26. 删除有序数组中的重复项
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2。输入:nums = [0,0,1,1,1,2,2,3,3,4]输出:5, nums = [0,1,2,3,4]输出:2, nums = [1,2,_]输入:nums = [1,1,2]原创 2023-07-11 03:12:52 · 64 阅读 · 1 评论 -
27. 移除元素
解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。输入:nums = [0,1,2,2,3,0,4,2], val = 2。元素的顺序可以改变。输入:nums = [3,2,2,3], val = 3。输出:5, nums = [0,1,4,0,3]原创 2023-07-10 18:40:51 · 69 阅读 · 1 评论 -
88. 合并两个有序数组
输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3。合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。输入:nums1 = [0], m = 0, nums2 = [1], n = 1。输入:nums1 = [1], m = 1, nums2 = [], n = 0。解释:需要合并 [1,2,3] 和 [2,5,6]。解释:需要合并的数组是 [] 和 [1]。输出:[1,2,2,3,5,6]原创 2023-07-10 18:33:43 · 63 阅读 · 1 评论 -
68. 文本左右对齐
输入:words = [“Science”,“is”,“what”,“we”,“understand”,“well”,“enough”,“to”,“explain”,“to”,“a”,“computer.”,“Art”,“is”,“everything”,“else”,“we”,“do”],maxWidth = 20。输入: words = [“This”, “is”, “an”, “example”, “of”, “text”,“justification.”], maxWidth = 16。原创 2023-07-10 17:30:26 · 107 阅读 · 1 评论 -
14. 最长公共前缀
【代码】14. 最长公共前缀。原创 2023-07-10 15:08:47 · 124 阅读 · 1 评论 -
6. N 字形变换
将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。请你实现这个将字符串进行指定行数变换的函数:来源:力扣(LeetCode)链接:https://leetcode.cn/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。原创 2023-07-10 15:09:08 · 116 阅读 · 1 评论 -
28. 找出字符串中第一个匹配项的下标
【代码】28. 找出字符串中第一个匹配项的下标。原创 2023-07-10 15:27:02 · 241 阅读 · 1 评论