自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 拯救者系列连不上以太网

拯救者无法连接以太网

2025-03-27 15:21:19 458

原创 快速排序(随机基准)

快排

2025-03-21 12:11:56 106

原创 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

原创 LeetCode146.LRU 缓存(哈希表+双向链表)

手搓双向链表

2025-03-20 10:17:50 1215

原创 虚拟机安装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

原创 LeetCode3. 无重复字符的最长字串(滑动窗口)

给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。

2025-02-12 15:27:13 233

原创 LeetCode11. 盛最多水的容器

双指针思想

2025-02-01 12:16:04 1135

原创 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

原创 springboot工程配置文件不生效?配置文件没有小绿叶?

这两个排除了基本就可以解决了。

2024-11-21 11:14:03 578 1

原创 最长公共上升子序列

熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目。小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们研究最长公共上升子序列了。小沐沐说,对于两个数列 A和 B,如果它们都包含一段位置不一定连续的数,且数值是严格递增的,那么称这一段数是两个数列的公共上升子序列,而所有的公共上升子序列中最长的就是最长公共上升子序列了。奶牛半懂不懂,小沐沐要你来告诉奶牛什么是最长公共上升子序列。不过,只要告诉奶牛它的长度就可以了。数列 A 和 B 的长度均不超过 30003000。

2024-09-17 20:15:00 476

原创 最大序列和问题(经典问题)

【代码】最大序列和问题(经典问题)

2024-09-16 20:00:00 207

原创 最大连续子序列

最大连续子序列模板

2024-09-15 23:54:37 143

原创 IDEA便捷操作

idea快捷操作

2024-08-28 15:41:23 1430

原创 Java项目枚举类和返回对象

Java项目枚举类和返回对象

2024-08-23 21:23:49 310

原创 切割01串问题(dp动态规划问题)

字符串字串问题

2024-07-29 09:12:31 417

原创 并查集基本模板

并查集基本模板

2024-05-02 17:10:11 162

原创 DFS模板

dfs

2024-03-24 10:17:51 245 1

原创 AcWing 3. 完全背包问题

完全背包问题

2024-02-24 23:55:13 1357

原创 算法题目中图和树的存储及遍历

大多用数组模拟方式实现单链表,因为快。

2024-02-23 23:58:27 304

原创 JDBC Druid连接池的工具类

JDBC Druid连接池的工具类。

2024-02-22 13:11:16 231

原创 AcWing 1220. 生命之树(树状DP)

树状DP

2024-02-21 23:54:12 742

原创 AcWing 1222.密码脱落

区间DP,新的枚举方法

2024-02-20 23:51:48 304

原创 AcWing 1047 糖果(01背包问题应用)

DP问题,01背包问题应用

2024-02-19 23:52:56 279

原创 AcWing 1050 鸣人的影分身(复杂DP ——整数划分问题)

复杂DP

2024-02-18 23:47:05 555

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除