- 博客(232)
- 收藏
- 关注
原创 394. 字符串解码
你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数。给定一个经过编码的字符串,返回它解码后的字符串。测试用例保证输出的长度不会超过。,表示其中方括号内部的。1、正则 + 循环替换。
2025-11-24 18:56:48
121
原创 64. 最小路径和
请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。因为路径 1→3→1→1→1 的总和最小。每次只能向下或者向右移动一步。给定一个包含非负整数的。
2025-11-24 10:46:39
53
原创 62. 不同路径
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。网格的左上角 (起始点在下图中标记为 “Start” )。从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向下 -> 向下。2. 向下 -> 向下 -> 向右。3. 向下 -> 向右 -> 向下。问总共有多少条不同的路径?
2025-11-24 10:33:44
104
原创 208. 实现 Trie (前缀树)
/ 返回 False。// 返回 True。// 返回 True。// 返回 True。children[26] —— 指向 26 个字母的下一个节点。isend —— 标记当前节点是否是某个单词的结尾。search —— 找到路径 + 必须是单词结尾。startsWith —— 找到路径即可。insert —— 逐字符建路径。
2025-11-24 00:35:44
471
原创 207. 课程表
总共有 2 门课程。学习课程 1 之前,你需要先完成课程 0;并且学习课程 0 之前,你还应先完成课程 1。总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。在选修某些课程之前需要一些先修课程。请你判断是否可能完成所有课程的学习?为总数,只需要判断是否存在环。,表示如果要学习课程。你这个学期必须选修 n。
2025-11-23 23:40:01
211
原创 416. 分割等和子集
请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。数组可以分割成 [1, 5, 5] 和 [11]。数组不能分割成两个元素和相等的子集。
2025-11-23 13:02:39
104
原创 152. 乘积最大子数组
请你找出数组中乘积最大的非空连续 子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。结果不能为 2, 因为 [-2,-1] 不是子数组。,一个只包含一个元素的数组的乘积是这个元素的值。子数组 [2,3] 有最大乘积 6。测试用例的答案是一个。
2025-11-23 12:09:21
184
原创 300. 最长递增子序列
是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。最长递增子序列是 [2,3,7,101],因此长度为 4。,找到其中最长严格递增子序列的长度。
2025-11-23 01:28:57
169
原创 139. 单词拆分
返回 true 因为 "applepenapple" 可以由 "apple" "pen" "apple" 拼接成。返回 true 因为 "leetcode" 可以由 "leet" 和 "code" 拼接成。不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。如果可以利用字典中出现的一个或多个单词拼接出。注意,你可以重复使用字典中的单词。
2025-11-23 01:09:42
351
原创 322. 零钱兑换
如果没有任何一种硬币组合能组成总金额,返回。,表示不同面额的硬币;你可以认为每种硬币的数量是无限的。计算并返回可以凑成总金额所需的。
2025-11-21 19:21:38
149
原创 198. 打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,。给定一个代表每个房屋存放金额的非负整数数组,计算你,一夜之内能够偷窃到的最高金额。[1,2,3,1]4偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4。12偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。
2025-11-21 00:04:33
240
原创 763. 划分字母区间
像 "ababcbacadefegde", "hijhklij" 这样的划分是错误的,因为划分的片段数较少。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。划分结果为 "ababcbaca"、"defegde"、"hijhklij"。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是。返回一个表示每个字符串片段的长度的列表。每个字母最多出现在一个片段中。
2025-11-20 23:46:16
237
原创 45. 跳跃游戏 II
从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。向后跳转的最大长度。换句话说,如果你在索引。测试用例保证可以到达。跳到最后一个位置的最小跳跃数是 2。处,你可以跳转到任意。初始位置在下标 0。
2025-11-20 10:53:14
139
原创 55. 跳跃游戏
无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回。给你一个非负整数数组。
2025-11-20 10:36:51
447
原创 994. 腐烂的橘子
左下角的橘子(第 2 行, 第 0 列)永远不会腐烂,因为腐烂只会发生在 4 个方向上。直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。因为 0 分钟时已经没有新鲜橘子了,所以答案就是 0。的新鲜橘子都会腐烂。
2025-11-19 13:58:10
353
原创 200. 岛屿数量
岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。(水)组成的的二维网格,请你计算网格中岛屿的数量。此外,你可以假设该网格的四条边均被水包围。
2025-11-19 00:25:05
236
原创 39. 组合总和--回溯
2 和 3 可以形成一组候选,2 + 2 + 3 = 7。注意 2 可以使用多次。如果至少一个数字的被选数量不同,则两种组合是不同的。7 也是一个候选, 7 = 7。,并以列表形式返回。中可以使数字和为目标数。对于给定的输入,保证和为。
2025-11-17 22:25:13
276
原创 回溯算法理解
需要注意的是,回溯算法是一种暴力搜索的方法,解空间的规模很大时,可能会导致算法效率低下。因此,在使用回溯算法时,需要根据问题的规模和特点进行合理的优化和剪枝,以提高算法的性能。因为你是在固定 index 的数,然后进入处理下一个 index。下一层必须处理 index+1(不是 i+1)需要交换数字来“固定”当前 index 位置。1️⃣ 组合(choose k)回溯逻辑。2️⃣ 排列(permute)回溯逻辑。来限制下一次选择从哪里开始。每个数字的位置都要尝试。每个数字只能选或不选。
2025-11-17 18:08:52
997
原创 46. 全排列---回溯
假设我们有 [2,5,8,9,10] 这 5 个数要填入,已经填到第 3 个位置,已经填了 [8,9] 两个数,那么这个数组目前为 [8,9 ∣ 2,5,10] 这样的状态,分隔符区分了左右两个部分。假设这个位置我们要填 10 这个数,为了维护数组,我们将 2 和 10 交换,即能使得数组继续保持分隔符左边的数已经填过,右边的待填 [8,9,10 ∣ 2,5]。将题目给定的 n 个数的数组 nums 划分成左右两个部分,,我们在回溯的时候只要动态维护这个数组即可。给定一个不含重复数字的数组。
2025-11-17 14:58:45
396
原创 287. 寻找重复数
我们从下标为 0 出发,根据 f(n) 计算出一个值,以这个值为新的下标,再用这个函数计算,以此类推,直到下标超界。同样的,我们从下标为 0 出发,根据 f(n) 计算出一个值,以这个值为新的下标,再用这个函数计算,以此类推产生一个类似链表一样的序列。使用环形链表II的方法解题(142.环形链表II),使用 142 题的思想来解决此题的关键是要理解如何将输入的数组看作为链表。从理论上讲,数组中如果有重复的数,那么就会产生多对一的映射,这样,形成的链表就一定会有环路了,),可知至少存在一个重复的整数。
2025-11-17 11:41:23
332
原创 42. 接雨水
给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。6上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。9。
2025-11-17 10:36:47
557
原创 437. 路径总和 III
不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。1000000000 + 1000000000 = 2000000000 (正常)和等于 8 的路径有 3 条,如图所示。,求该二叉树里节点值之和等于。发生整数溢出,后续计算都不准确。给定一个二叉树的根节点。
2025-11-17 00:14:17
240
原创 排序java
从最低位(LSD,Least Significant Digit)到最高位(MSD,Most Significant Digit)依次排序。(3) 时间复杂度可以突破基千关键字比较一类方法的下界O(nlog2n), 达到O(n)。:O(n log n)(建堆 O(n) + 排序 O(n log n))→ 但整体复杂度仍然 O(n²),因为移动数组元素仍要 O(n):大量数据、要求 O(n log n) 最坏时间,且对空间敏感。:O(d*(n+k)),适合大规模整数排序。
2025-11-16 14:50:17
1015
原创 136. 只出现一次的数字
除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。方法一:位运算:数组中的全部元素的异或运算结果即为数组中只出现一次的数字。
2025-11-13 00:55:13
273
原创 20有效的括号
栈是Vector的一个子类,它实现了一个标准的后进先出的栈。学习思路:利用hashmap 去对应。,判断字符串是否有效。注意==和.equals。
2025-11-12 23:43:53
389
原创 HJ18 识别有效的IP地址和掩码并进行分类统计
判断每个字节是否为合法的掩码字节(255, 254, 252, 248, 240, 224, 192, 128, 0)验证掩码的连续性:如果某个字节不是全1,则前面所有字节必须都是255。逐个处理每行输入,每行包含IP地址和掩码(用。(包括字母、数字、空格等,除了换行符)。A、B、C、D、E类IP地址的数量。此外额外注意循环条件的退出!掩码必须是连续的1后接连续的0。错误IP或错误掩码的数量。这些地址不参与后续统计。B类:128-191。C类:192-223。D类:224-239。E类:240-255。
2025-11-12 10:34:28
1037
原创 HJ17 坐标移动
" 是合法的,向下移动 2020 个单位,到达 (−10,−20)(−10,−20) 点;" 是合法的,向上移动 1010 个单位,到达 (−10,−10)(−10,−10) 点;" 是合法的,向右移动 3030 个单位,到达 (20,−10)(20,−10) 点;∙ ∙第九个指令 "A10;" 是合法的,向左移动 1010 个单位,到达 (10,−10)(10,−10) 点。∙ ∙第一个指令 "A10;" 是合法的,向左移动 1010 个单位,到达 (−10,0)(−10,0) 点;
2025-11-11 18:30:04
476
原创 HJ16 购物单--01背包问题
在这个样例中,第三、四、五件物品为主件,第一、二件物品为第五件物品的附件。但是特别地,如果同时购买了第一件物品和第二件物品,则只需要购买一次第五件物品。为了先购买重要的物品,他给每件物品规定了一个重要度,用整数 1∼5 表示。我们可以证明,购买一、二、五件商品,获得的满意度最大,为 20×3+20×3+10×1=13020×3+20×3+10×1=130。∙ ∙若要购买某附件,必须先购买该附件所属的主件,且每件物品只能购买一次。王强决定把年终奖用于购物,他把想买的物品分为两类:主件与附件。
2025-11-11 17:50:00
984
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅