
每日一刷
文章平均质量分 71
力扣里面的算法题
谢道韫689
正在学习鸿蒙中,请多多指教
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
50-字母异位词分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。原创 2025-07-21 22:37:20 · 329 阅读 · 0 评论 -
49-有效的字母异位词
给定两个字符串s和t,编写一个函数来判断t是否是s的 字母异位词。truefalset如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?原创 2025-06-26 23:39:34 · 364 阅读 · 0 评论 -
48-单词规律
给定一种规律pattern和一个字符串s,判断s是否遵循相同的规律。这里的指完全匹配,例如,pattern里的每个字母和字符串s中的每个非空单词之间存在着双向连接的对应规律。原创 2025-06-24 22:21:45 · 430 阅读 · 0 评论 -
47-同构字符串
给定两个字符串s和t,判断它们是否是同构的。如果s中的字符可以按某种映射关系替换得到t,那么这两个字符串是同构的。每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。原创 2025-06-23 23:40:07 · 273 阅读 · 0 评论 -
46- 赎金信
ransomNote和magazine,判断ransomNote能不能由magazine里面的字符构成。如果可以,返回true;否则返回false。magazine中的每个字符只能在ransomNote中使用一次。原创 2025-06-22 23:43:27 · 388 阅读 · 0 评论 -
45-生命游戏
根据,简称为,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。给定一个包含m × n个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1即为(live),或0即为(dead)。下一个状态是通过将上述规则同时应用于当前状态下的每个细胞所形成的,其中细胞的出生和死亡是发生的。给你m x n网格面板board的当前状态,返回下一个状态。给定当前board的状态,board到下一个状态。你不需要返回任何东西。原创 2025-06-19 23:41:05 · 937 阅读 · 0 评论 -
44-矩阵置零
给定一个m x n的矩阵,如果一个元素为,则将其所在行和列的所有元素都设为。请使用算法O(mn)O(m + n)原创 2025-06-18 23:26:36 · 916 阅读 · 0 评论 -
43-旋转图像
给定一个n×n的二维矩阵matrix表示一个图像。请你将图像顺时针旋转 90 度。你必须在旋转图像,这意味着你需要直接修改输入的二维矩阵。使用另一个矩阵来旋转图像。原创 2025-06-17 23:39:56 · 650 阅读 · 0 评论 -
42-螺旋矩阵
给你一个m行n列的矩阵matrix,请按照,返回矩阵中的所有元素。原创 2025-06-16 23:47:39 · 427 阅读 · 0 评论 -
41 - 有效的数独
请你判断一个9 x 9的数独是否有效。只需要,验证已经填入的数字是否有效即可。1-91-91-93x3'.'board =trueboard =false除了第一行的第一个数字从改为以外,空格内其他数字均与 示例1 相同。但由于位于左上角的 3x3 宫内有两个 8 存在, 因此这个数独是无效的。1-9'.'原创 2025-06-12 23:38:36 · 613 阅读 · 0 评论 -
40- 螺旋矩阵
给你一个m行n列的矩阵matrix,请按照,返回矩阵中的所有元素。原创 2025-04-21 23:22:09 · 673 阅读 · 0 评论 -
39- 有效的数独
请你判断一个9 x 9的数独是否有效。只需要,验证已经填入的数字是否有效即可。1-91-91-93x3'.'board =trueboard =false除了第一行的第一个数字从改为以外,空格内其他数字均与 示例1 相同。但由于位于左上角的 3x3 宫内有两个 8 存在, 因此这个数独是无效的。1-9'.'原创 2025-04-17 22:35:23 · 1022 阅读 · 0 评论 -
38-最小覆盖子串
给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。tts"BANC"最小覆盖子串 "BANC" 包含来自字符串 t 的 'A'、'B' 和 'C'。"a"整个字符串 s 是最小覆盖子串。""t 中两个字符 'a' 均应包含在 s 的子串中,因此没有符合条件的子字符串,返回空字符串。t你能设计一个在o(m+n)时间内解决此问题的算法吗?原创 2025-04-16 21:16:19 · 643 阅读 · 0 评论 -
37-串联所有单词的子串
给定一个字符串s和一个字符串数组wordswords中所有字符串。s中的是指一个包含words中所有字符串以任意顺序排列连接起来的子串。"abcdef""abefcd""cdabef""cdefab""efabcd""efcdab""acdbef"words返回所有串联子串在s中的开始索引。你可以以返回答案。[0,9]因为 words.length == 2 同时 words[i].length == 3,连接的子字符串的长度必须为 6。子串 "barfoo" 开始位置是 0。原创 2025-04-15 20:39:43 · 701 阅读 · 0 评论 -
36-无重复字符的最长子串
给定一个字符串s,请你找出其中不含有重复字符的的长度。3因为无重复字符的最长子串是"abc",所以其长度为 3。1因为无重复字符的最长子串是"b",所以其长度为 1。3因为无重复字符的最长子串是"wke",所以其长度为 3。请注意,你的答案必须是的长度,"pwke"是一个子序列,不是子串。原创 2025-04-14 21:48:39 · 340 阅读 · 0 评论 -
35-长度最小的子数组
给定一个含有n个正整数的数组和一个正整数target找出该数组中满足其总和大于等于target的长度最小的,并返回其长度如果不存在符合条件的子数组,返回0。原创 2025-03-24 21:51:47 · 230 阅读 · 0 评论 -
34-三数之和
给你一个整数数组nums,判断是否存在三元组满足i!= ji!= k且j!= k,同时还满足。请你返回所有和为0且不重复的三元组。答案中不可以包含重复的三元组。原创 2025-03-21 23:02:44 · 372 阅读 · 0 评论 -
33-盛最多水的容器
给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i, 0)和。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。你不能倾斜容器。原创 2025-03-20 23:27:11 · 343 阅读 · 0 评论 -
32- 两数之和 II - 输入有序数组
给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length。以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。原创 2025-03-12 22:58:37 · 625 阅读 · 0 评论 -
31-判断子序列
给定字符串 s 和 t ,判断 s 是否为 t 的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。进阶: 如果有大量输入的 S,称作 S1, S2, ... , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?原创 2025-03-11 22:06:38 · 653 阅读 · 0 评论 -
30-判断子序列
给定字符串和,判断是否为的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。如果有大量输入的 S,称作 S1, S2, ... , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?原创 2025-03-09 22:39:18 · 474 阅读 · 0 评论 -
29-验证回文串
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串。字母和数字都属于字母数字字符。给你一个字符串 s,如果它是 回文串 ,返回 true;否则,返回 false。原创 2025-03-09 21:56:10 · 418 阅读 · 0 评论 -
28-文本左右对齐
给定一个单词数组 words 和一个长度 maxWidth ,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。你应该使用 “贪心算法” 来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必要时可用空格 ' ' 填充,使得每行恰好有 maxWidth 个字符。要求尽可能均匀分配单词间的空格数量。如果某一行单词间的空格不能均匀分配,则左侧放置的空格数要多于右侧的空格数。文本的最后一行应为左对齐,且单词之间不插入额外的空格。注意: 单词是指由非空格字符组成的字符序列。原创 2025-03-06 23:54:47 · 440 阅读 · 0 评论 -
27-找出字符串中第一个匹配项的下标
给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从 0 开始)。如果needle不是haystack的一部分,则返回-1。原创 2025-03-05 22:36:37 · 414 阅读 · 0 评论 -
26-找出字符串中第一个匹配项的下标
给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从 0 开始)。如果needle不是haystack的一部分,则返回-1。原创 2025-03-04 21:55:38 · 299 阅读 · 0 评论 -
25-Z 字形变换
将一个给定字符串s根据给定的行数numRows,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为行数为3时,排列如下:Y I R。原创 2025-03-03 22:54:57 · 412 阅读 · 0 评论 -
24-反转字符串中的单词
给你一个字符串s,请你反转字符串中的顺序。是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的分隔开。返回顺序颠倒且之间用单个空格连接的结果字符串。输入字符串s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。原创 2025-03-02 21:34:29 · 326 阅读 · 0 评论 -
23-整数转罗马数字
代码测试用例测试结果测试结果中等相关标签相关企业罗马数字是通过添加从最高到最低的小数位值的转换而形成的。VIIVXIIXIVIXXLXCCDCMIXCMVLD给定一个整数,将其转换为罗马数字。原创 2025-03-02 21:15:12 · 322 阅读 · 0 评论 -
22-接雨水
给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。原创 2025-03-01 22:21:54 · 371 阅读 · 0 评论 -
21-发糖果
n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求,给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。 相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。代码解释 初始化糖果数组:创建一个长度为 的数组 ,并将每个元素初始化为 ,表示每个孩子至少分配到 个糖果。 从左到右遍历:通过 循环从索引 到 遍历数组。如果当前孩子的评分 大于左边孩子的评分 ,则将当前孩子的糖果数 设置原创 2025-02-28 22:31:57 · 633 阅读 · 0 评论 -
20-加油站
在一条环路上有n个加油站,其中第i个加油站有汽油gas[i]升。你有一辆油箱容量无限的的汽车,从第i个加油站开往第i+1个加油站需要消耗汽油cost[i]升。你从其中的一个加油站出发,开始时油箱为空。给定两个整数数组gas和cost,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回-1。如果存在解,则它是的。原创 2025-02-26 22:21:08 · 559 阅读 · 0 评论 -
19-找出字符串中第一个匹配项的下标
给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1。原创 2025-02-24 22:54:32 · 337 阅读 · 0 评论 -
18-除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。请 不要使用除法,且在 O(n) 时间复杂度内完成此题。原创 2025-02-23 19:10:44 · 290 阅读 · 0 评论 -
17-最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。原创 2025-02-21 23:56:33 · 356 阅读 · 0 评论 -
16-O(1) 时间插入、删除和获取随机元素
实现valtruefalsevaltruefalse你必须实现类的所有函数,并满足每个函数的时间复杂度为O(1)。原创 2025-02-20 22:50:02 · 416 阅读 · 0 评论 -
15-最后一个单词的长度
单词的长度。原创 2025-02-19 22:47:48 · 497 阅读 · 0 评论 -
14-H指数
排序法实现较为直观,但时间复杂度较高;计数法时间复杂度较低,在处理大规模数据时性能更优。你可以根据实际情况选择合适的方法。原创 2025-02-18 22:57:15 · 491 阅读 · 0 评论 -
13-跳跃游戏 II
给定一个长度为n的整数数组nums。初始位置为nums[0]。每个元素nums[i]表示从索引i向后跳转的最大长度。换句话说,如果你在nums[i]处,你可以跳转到任意i + j < n返回到达的最小跳跃次数。生成的测试用例可以到达。原创 2025-02-18 00:07:17 · 827 阅读 · 0 评论 -
12-罗马数字转整数
罗马数字包含以下七种字符:IVXLCD和M。例如, 罗马数字2写做II,即为两个并列的 1。12写做XII,即为XII。27写做XXVII, 即为XXVII。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做IIII,而是IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为IX。IVXXLCCDM给定一个罗马数字,将其转换成整数。原创 2025-02-16 22:24:37 · 1094 阅读 · 0 评论 -
11-跳跃游戏
如果在范围内,更新最远可到达位置为当前位置能到达的最远位置和之前记录的最远可到达位置中的较大值。最后检查最远可到达位置是否大于等于数组的最后一个下标,如果是,则说明可以到达最后一个下标,返回。对于数组中的每个位置,检查当前位置是否在最远可到达位置的范围内,如果不在,说明无法到达该位置,也就无法到达最后一个下标,直接返回。贪心算法的时间复杂度为 O(n),空间复杂度为 O(1) ,是更优的解决方案。这种贪心算法的思想通过不断更新最远可到达位置,在一次遍历中就可以判断是否能够到达数组的最后一个下标,效率较高。原创 2025-02-15 22:10:19 · 1150 阅读 · 0 评论