- 博客(84)
- 收藏
- 关注
原创 LeetCode394.字符串解码
算法使用栈来处理嵌套的括号结构,遇到数字时累积倍数,遇到左括号时保存当前状态到栈中,遇到右括号时弹出栈顶状态进行计算。通过这种方法,可以正确处理嵌套结构并生成解码后的字符串。例如"3[a2[c]]"解码为"accaccacc"。该解法时间复杂度为O(n),空间复杂度为O(n)
2025-07-14 20:00:00
291
原创 LeetCode739.每日温度(单调栈)
题目要求计算每日温度后第一个更高温度出现的天数差。使用单调栈从右向左遍历,维护一个温度递减的栈。对于每个温度,弹出栈中小于当前温度的无效元素,栈顶即为第一个更高温度的索引,计算天数差存入结果数组。若栈空则记为0。该方法通过及时移除无效元素确保高效性,时间复杂度O(n)。
2025-07-13 21:02:33
267
原创 LeetCode33.搜索旋转排序数组
题目要求在旋转后的有序数组中查找目标值target,并返回其下标,若不存在则返回-1。该数组由两部分升序数组组成,需设计O(log n)时间复杂度的算法。 解题思路采用二分查找,通过比较中间值mid和数组末尾元素nums[n-1]来确定target所在区间。具体分为三种情况判断right指针的移动方向:当mid在前半段且target位于mid左侧时,或当mid在后半段且target大于数组末尾或小于等于mid时,移动right指针。 代码实现中,通过is_move方法合并处理判断条件,最终返回left指针位
2025-07-04 22:00:00
187
原创 LeetCode34.在排序数组中查找元素的第一个和最后一个位置
摘要: 本文提出了一种在有序数组中查找目标值出现范围的二分查找算法。通过修改标准二分查找,找到第一个大于等于目标值的索引作为起始位置,再通过寻找目标值+1的起始位置减1得到结束位置。
2025-07-03 19:30:45
132
原创 LeetCode208.实现Trie(前缀树)
本文介绍了Trie树(前缀树)数据结构及其实现。Trie树是一种高效存储和检索字符串的树形结构,适用于自动补全、拼写检查等场景。文章给出了Trie类的三个核心方法:insert插入字符串、search精确查找字符串、startsWith检查前缀。通过Java代码展示了Trie节点的实现(26个子节点数组和结束标记),并详细解释了每个方法的逻辑:insert遍历字符构建节点链并标记结束;search遍历验证完整字符串存在;startsWith只需验证前缀路径存在。代码简洁明了,是处理字符串相关问题的经典模板。
2025-06-29 23:49:23
287
原创 LeetCode207.课程表
摘要: 本文探讨了课程选修问题(LeetCode 207题),通过拓扑排序判断课程安排是否合理。核心思路是检测课程依赖图中是否存在环:若存在环则无法完成学习。具体步骤包括构建入度表、邻接表,将入度为0的节点入队,依次处理并减少相邻节点的入度,最终剩余课程数为0则无环。代码示例展示了如何实现这一算法,适用于基础薄弱的学习者理解拓扑排序的应用场景。
2025-06-28 23:56:46
688
原创 LeetCode138. 随机链表的复制(hash表新用途)
深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点。给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。用一个由 n 个节点组成的链表来表示输入/输出中的链表。Node.random 为 null 或指向链表中的节点。
2025-05-10 15:25:27
277
原创 LeetCode240. 搜索二维矩阵 II(巧妙转换)
编写一个高效的算法来搜索m x n矩阵 matrix 中的一个目标值 target。每行的元素从左到右升序排列。每列的元素从上到下升序排列。
2025-05-03 18:00:00
555
原创 LeetCode102.二叉树的层序遍历
这个直接看代码更容易理解,也可以手画一个树模拟一下,网格的话同理,就是两个变成四个然后标记遍历过的节点就行。给你二叉树的根节点 root ,返回其节点值的 层序遍历。(即逐层地,从左到右访问所有节点)。
2025-04-01 20:57:49
304
原创 LeetCode200. 岛屿数量(dfs深度遍历搜索)
给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。输入:grid = [输入:grid = [
2025-03-31 20:23:55
262
原创 LeetCode215. 数组中的第K个最大元素
我们可以基于排序的这种思想进行拓展,快速排序的思想是找一个随机值,将小于它的放到左边,大于它的放到右边。本题我们能想到最简单的方法就是直接给数组排序,然后取第第N-k个元素,但题目要求是O(n)的时间复杂度,这是不论哪种排序方法都无法做到的,所以我们肯定要进行优化。在看完官方的解答和评论区后恍然大悟,想着分享一下。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。输入: [3,2,3,1,2,4,5,5,6], k = 4。输入: [3,2,1,5,6,4], k = 2。
2025-03-20 17:04:18
282
原创 虚拟机安装windows提示OOBEREGION
在VMware中安装win10一直提示OOBEREGION,在查找后发现在给他的硬件配置时,给他的内核数一定要大于2,我原来是1,搞了很长时间都不行。
2025-03-19 17:43:49
261
原创 LeetCode279完全平方数(动态规划)
完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。给你一个整数 n ,返回 和为 n 的完全平方数的最少数量。代码其实很短,主要就是思路,有不懂的可以留言。解释:12 = 4 + 4 + 4。解释:13 = 4 + 9。
2025-03-02 20:00:00
306
原创 LeetCode72编辑距离(动态规划)
给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数。输入:word1 = “intention”, word2 = “execution”inention -> enention (将 ‘i’ 替换为 ‘e’)enention -> exention (将 ‘n’ 替换为 ‘x’)exention -> exection (将 ‘n’ 替换为 ‘c’)输入:word1 = “horse”, word2 = “ros”
2025-03-01 18:04:18
522
原创 LeetCode5最长回文字串
给你一个字符串 s,找到 s 中最长的回文子串。解释:“aba” 同样是符合题意的答案。输入:s = “babad”输入:s = “cbbd”s 仅由数字和英文字母组成。大家有问题的话可以留言。
2025-02-26 20:00:00
247
原创 LeetCode1143最长公共子序列(二维动态规划)
这里其实也有01背包的思想,就是选不选的问题,在什么情况下我们会选,当text1[i - 1] = text2[j - 1] (这里就是看第i个数是否相等,我们从1开始遍历,而数组是从0开始的,所以text1[i - 1]就是第i个数)时,就要选 dp[i] [j] = dp[i - 1] [j - 1] + 1;不相等的话dp[i] [j] = max(dp[i - 1] [j] ,dp[i] [j - 1] ),不选当前元素那就得看看哪个数组的上一个公共序列更长一点,这样的话本题就通了。
2025-02-25 19:41:43
310
原创 Leetcode162. 寻找峰值(特殊的二分查找)
峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。你必须实现时间复杂度为 O(log n) 的算法来解决此问题。
2025-02-13 14:19:39
410
原创 leetcode 45. 跳跃游戏 II
每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。输入: nums = [2,3,1,1,4]解释: 跳到最后一个位置的最小跳跃数是 2。输入: nums = [2,3,0,1,4]题目保证可以到达 nums[n-1]
2024-12-11 11:11:44
324
原创 使用nginx请求转发时前端报跨域问题解决
我发现当上传文件大小小于1m时并不会发生错误,所以我们应该配置一下nginx允许上传文件的大小。当其他接口都没有问题,后端也进行了跨域的配置时,此时问题应该就出现在nginx中。在nginx目录下重启nginx即可。在nginx.conf中添加。这样问题就可以解决了!
2024-11-30 16:50:55
474
原创 最长公共上升子序列
熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目。小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们研究最长公共上升子序列了。小沐沐说,对于两个数列 A和 B,如果它们都包含一段位置不一定连续的数,且数值是严格递增的,那么称这一段数是两个数列的公共上升子序列,而所有的公共上升子序列中最长的就是最长公共上升子序列了。奶牛半懂不懂,小沐沐要你来告诉奶牛什么是最长公共上升子序列。不过,只要告诉奶牛它的长度就可以了。数列 A 和 B 的长度均不超过 30003000。
2024-09-17 20:15:00
476
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人