- 博客(172)
- 收藏
- 关注
原创 LeetCode 刷题【181. 超过经理收入的员工】
该查找薪资高于其经理的员工。通过自连接Employee表(别名e1和e2),将员工的managerId与经理的id匹配,并筛选出e1.salary大于e2.salary的记录
2025-12-04 21:24:39
20
原创 LeetCode 刷题【180. 连续出现的数字】
找出连续出现至少3次的相同数字。它通过自连接Logs表三次,分别获取当前记录(a)、下一条记录(b)和下下条记录(c)。通过比较三者的id(相差1和2)和num值是否相等,筛选出连续三次出现相同数字的记录,并使用DISTINCT去除重复结果。最终返回这些连续出现的数字作为ConsecutiveNums。
2025-12-03 10:11:26
57
原创 LeetCode 刷题【179. 最大数】
将整数数组排列成最大数字的问题。关键步骤是将数字转为字符串数组,自定义排序规则:比较两字符串拼接后的字典序(a+b与b+a比较)。排序后拼接所有字符串,并处理前导零情况。
2025-12-02 16:08:30
142
原创 LeetCode 刷题【178. 分数排名】
对分数表进行排名计算。使用DENSE_RANK()窗口函数,按照分数降序(desc)为每条记录分配排名。与RANK()不同,DENSE_RANK()在遇到相同分数时不会跳过后续排名序号,而是保持连续的排名编号
2025-12-01 10:04:08
100
原创 LeetCode 刷题【177. 第N高的薪水】
查询第N高的薪资。通过声明变量m=N-1调整偏移量,然后使用DISTINCT和ORDER BY对薪资降序排序,最后用LIMIT 1 OFFSET m获取第N高的记录
2025-11-30 18:48:21
109
原创 LeetCode 刷题【176. 第二高的薪水】
查找员工表中第二高的薪水。通过DISTINCT去重后按薪水降序排序,使用LIMIT 1 OFFSET 1跳过最高薪记录并获取第二条记录,最终将结果命名为SecondHighestSalary返回
2025-11-29 11:22:44
192
原创 LeetCode 刷题【175. 组合两个表】
组合Person和Address表 :SQL查询使用LEFT JOIN操作将Person和Address两个表进行关联,查询结果包含人员姓名和地址信息。查询从Person表选取FirstName和LastName字段,从Address表选取City和State字段,通过PersonId字段进行关联。LEFT JOIN确保即使某些人员在Address表中没有对应记录,也会在结果中显示其姓名信息。这种查询方式常用于需要获取人员基本信息及其相关地址数据的场景。
2025-11-28 10:04:05
199
原创 LeetCode 刷题【174. 地下城游戏】
使用动态规划解决地下城游戏问题。从终点逆向计算每个位置所需最小生命值,初始化边界为极大值,终点相邻位置设为1。通过比较下方和右方的最小值,减去当前格子消耗,并与1取最大值更新dp数组。
2025-11-27 16:41:57
192
原创 LeetCode 刷题【173. 二叉搜索树迭代器】
二叉搜索树迭代器(BSTIterator),使用栈结构进行中序遍历。初始化时将左子树节点全部入栈,next()方法弹出栈顶节点后处理其右子树,hasNext()检查栈是否为空
2025-11-26 10:32:46
95
原创 LeetCode 刷题【172. 阶乘后的零】
计算阶乘结果末尾零的数量。通过统计阶乘数中因子5的个数来确定末尾零的数量,因为每个5与2相乘会产生一个零。算法使用循环结构,不断累加n除以5的幂次方的结果
2025-11-25 10:18:59
178
原创 LeetCode 刷题【171. Excel 表列序号】
将Excel表格列标题转换为对应的序号。通过从右到左遍历字符串,将每个字符转换为对应的数值(A=1,...,Z=26),并按26进制进行累加计算
2025-11-24 09:14:31
223
原创 LeetCode 刷题【169. 多数元素】
求解多数元素问题。第一种直接排序后取中间值;第二种通过精简快排实现;第三种基于摩尔投票法,通过计数器高效找出出现次数超过半数的元素。其中摩尔投票法最为高效,只需一次遍历
2025-11-23 11:42:27
245
原创 LeetCode 刷题【168. Excel 表列名称】
将数字转换为Excel表列名称。通过StringBuffer构建字符串,每次循环将数字减1后取26的余数转换为字母,再除以26继续处理,最后反转字符串输出。
2025-11-22 17:06:28
297
原创 LeetCode 刷题【166. 分数到小数、167. 两数之和 II - 输入有序数组】
1. 分数转小数(166题):通过处理整数和小数部分,使用哈希表记录余数位置检测循环节,最终拼接结果字符串。2. 两数之和II(167题):针对有序数组采用双指针法,通过调整左右指针位置寻找目标和。
2025-11-21 11:16:29
185
原创 LeetCode 刷题【165. 比较版本号】
比较两个版本号字符串。通过按点号'.'分割版本号,逐个比较每个数字段。使用双指针从右向左解析每个段为整数值,若version1段值大返回1,version2段值大返回-1,所有段都相等则返回0。处理过程考虑了不同长度版本号的情况,确保正确比较各段数值。
2025-11-19 10:19:50
166
原创 LeetCode 刷题【164. 最大间距】
求解数组最大间距问题:1)简单排序法:先将数组排序,然后遍历计算相邻元素差值的最大值。2)基数排序法(官方题解):通过分位数位进行排序,最后计算相邻元素差值。
2025-11-18 09:51:11
110
原创 LeetCode 刷题【162. 寻找峰值】
在数组中寻找峰值元素。第一种解法采用线性扫描,通过三指针比较相邻元素,第二种官方解法使用随机化方法,随机选取初始位置后通过比较函数调整搜索方向,利用辅助函数处理边界值,最终定位峰值元素。
2025-11-17 18:28:14
176
原创 LeetCode 刷题【160. 相交链表】
查找两个相交链表的交点。通过计算两个链表的长度差,调整较长链表的起始指针位置使其与较短链表同步移动,然后同时遍历两个链表直到找到相同节点。
2025-11-16 11:44:09
217
原创 LeetCode 刷题【155. 最小栈】
两种实现最小栈的解法。第一种使用栈+链表结构,通过链表维护有序节点来获取最小值,但操作较复杂。第二种是官方题解方案,采用双栈结构,主栈存储数据,辅助栈同步存储当前最小值
2025-11-15 21:52:54
478
原创 LeetCode 刷题【154. 寻找旋转排序数组中的最小值 II】
旋转排序数组中寻找最小值。通过二分查找优化,当数组可能有重复元素时,通过比较中间元素与边界值来缩小搜索范围
2025-11-14 20:40:25
201
原创 LeetCode 刷题【153. 寻找旋转排序数组中的最小值】
在旋转排序数组中寻找最小值。使用二分查找方法,通过比较中间元素与首尾元素的值来确定最小值所在区间,逐步缩小搜索范围。
2025-11-13 19:34:49
132
原创 LeetCode 刷题【152. 乘积最大子数组】
求解数组中乘积最大子数组。第一种方法使用二维DP数组,初始化对角线元素后逐步计算子数组乘积,但存在处理0值的特殊情况。第二种优化方法维护两个一维数组maxF和minF,分别记录以当前元素结尾的最大和最小乘积,通过比较前一状态与当前值的乘积来更新状态。
2025-11-12 11:23:11
226
原创 LeetCode 刷题【151. 反转字符串中的单词】
反转字符串中单词顺序的解法。自定义解法通过单次遍历逐个处理单词,手动拼接反转结果。官方题解则使用trim()去除首尾空格,利用正则表达式分割字符串后反转并拼接
2025-11-11 11:50:36
317
原创 LeetCode 刷题【150. 逆波兰表达式求值】
栈结构求解逆波兰表达式的方法。算法遍历表达式中的每个元素:当遇到数字时压入栈;遇到运算符则弹出栈顶两个数字进行相应运算,并将结果重新压栈。最终栈中仅剩的值即为表达式结果。
2025-11-10 15:00:34
144
原创 LeetCode 刷题【149. 直线上最多的点数】
求解直线上最多点数。对于每个点,计算与其他点的斜率(用最简分数形式表示),使用哈希表记录相同斜率出现的次数。处理斜率时考虑水平和垂直情况,并通过最大公约数化简分数。最终返回最大共线点数加1(包含当前点)
2025-11-09 22:35:50
146
原创 LeetCode 刷题【148. 排序链表】
链表的归并排序。通过递归方式将链表不断二分,直到单个节点后,利用merge方法有序合并两个已排序的子链表。merge方法通过双指针遍历两个链表,按值大小顺序连接节点。
2025-11-08 11:09:13
200
原创 LeetCode 刷题【147. 对链表进行插入排序】
链表插入排序的实现方法。算法使用哨兵节点简化边界条件处理,通过遍历链表将每个节点插入到已排序部分的正确位置。当当前节点值小于前一节点时,从链表头部开始查找插入位置;否则继续向后遍历。
2025-11-07 21:41:29
233
原创 LeetCode 刷题【146. LRU 缓存】
两种LRU缓存实现方案。第一种使用双哈希表+TreeMap方案,通过维护数据表、键-时间表和时间-键表来跟踪访问顺序,淘汰最久未使用的数据时需遍历TreeMap。第二种是官方题解采用的双向链表+哈希表方案,通过双向链表维护访问顺序,配合哈希表快速定位节点
2025-11-06 14:51:56
249
原创 LeetCode 刷题【145. 二叉树的后序遍历】
二叉树后序遍历的递归解法。通过定义一个递归函数postTravel,先递归访问左子树,再递归访问右子树,最后将当前节点值加入结果列表。
2025-11-05 16:32:17
198
原创 LeetCode 刷题【144. 二叉树的前序遍历】
使用递归方法实现二叉树前序遍历。代码定义了一个Solution类,通过preTraversal方法递归访问节点(根-左-右),将节点值存入列表。preorderTraversal方法作为入口,调用递归方法并返回结果列表。该解法遵循前序遍历的基本原理,当节点为空时终止递归
2025-11-04 10:18:01
150
原创 LeetCode 刷题【143. 重排链表】
一个重排链表(L0→Ln→L1→Ln-1→...)。算法分为三步:1)使用快慢指针将链表从中间断开;2)反转后半部分链表;3)交替合并前后两部分。
2025-11-03 20:50:19
163
原创 LeetCode 刷题【142. 环形链表 II】
环形链表II问题。采用双指针(slow,fast)策略,当快慢指针相遇后,再用指针从头部出发与慢指针同步移动,相遇点即为环入口
2025-11-02 10:57:53
168
原创 LeetCode 刷题【141. 环形链表】
检测环形链表。通过定义快指针(p)和慢指针(q)同时遍历链表,快指针每次移动两步,慢指针移动一步。当快慢指针相遇时说明存在环,否则快指针到达链表末尾则无环。
2025-11-01 10:17:21
123
原创 LeetCode 刷题【140. 单词拆分 II】
使用回溯算法解决单词拆分II问题。通过构建哈希表存储中间结果,递归地搜索所有可能的单词分割方式。算法从字符串起始位置开始,检查每个子串是否在字典中,若存在则递归处理剩余部分,最后合并结果并缓存以避免重复计算。
2025-10-31 21:05:41
237
原创 LeetCode 刷题【139. 单词拆分】
单词拆分问题:第一种是采用递归回溯的自制解法,但由于超时而不可行;第二种是官方推荐的动态规划解法。递归方法通过逐个匹配字典单词进行搜索,而动态规划解法使用布尔数组dp记录子串匹配状态,通过双重循环判断子串是否可拆分
2025-10-30 12:04:21
291
原创 LeetCode 刷题【138. 随机链表的复制】
复制带随机指针的链表。主要步骤为:1) 使用哈希表存储原链表节点与索引的映射;2) 先按next指针顺序复制新链表,并保存各节点到ArrayList;3) 二次遍历时通过哈希表查找random指针对应的索引,从ArrayList获取对应新节点建立random关系。
2025-10-29 12:04:41
197
原创 LeetCode 刷题【136. 只出现一次的数字、137. 只出现一次的数字 II】
136题(出现一次的数字),排序和哈希表可以解,但最优解是官方提供的位运算(异或)方案,对于137题(出现特定次数的数字),官方则给出基于位运算的进阶方案,通过对每位求和并取模3来识别唯一数字
2025-10-28 20:41:43
264
原创 LeetCode 刷题【135. 分发糖果】
解决分发糖果问题。算法采用两次遍历:第一次从左到右确保右高分孩子糖果更多,第二次从右到左确保左高分孩子糖果更多,最终取两次遍历的最大值求和。
2025-10-27 18:16:48
304
原创 LeetCode 刷题【134. 加油站】
解决加油站环行问题的算法。第一种暴力解法时间复杂度较高,通过双重循环逐一检查每个加油站作为起点的可行性。第二种优化解法(官方题解)采用贪心策略,当发现某段路程不可行时直接跳过中间站点,将时间复杂度降低到O(n)。
2025-10-26 19:33:43
221
原创 LeetCode 刷题【133. 克隆图】
图的深度优先搜索(DFS)克隆算法。通过定义Node类表示图节点,使用HashMap记录已克隆节点,HashSet标记访问过的节点。cloneGraph方法初始化克隆过程,DFS方法递归遍历原图,为每个未克隆的节点创建副本并建立边关系。
2025-10-25 12:08:04
123
A Comprehensive Survey for Real-World Industrial Defect Detection Challenges阅读笔记25.7综述.pdf
2025-09-21
变分自编码器VAE的学习笔记
2025-09-18
《Revisiting Generative Replay for Class Incremental Object Detection》阅读笔记
2025-07-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅