- 博客(52)
- 问答 (9)
- 收藏
- 关注
原创 leetcode416 分割等和子集(01背包动态规划,需要重新做)
【代码】leetcode416 分割等和子集(01背包动态规划,需要重新做)
2025-11-27 16:31:27
316
原创 leetcode300 最长递增子序列
关键在于知道dp[i]为以nums[i]为结尾的最长递增子序列,然后动归的时候固定i不动,对比前面的数字,如果满足递增,那就把i拼上去,看看长度。
2025-11-26 15:10:45
76
原创 leetcode139 单词拆分(看了答案自己写的)
拆成前半段可以拆分,后半段在字典中出现,dp[i]的意思是前i个字母能否被拆分。切成几段,每一段都在字典里。):这一段是不是字典里的单词?):这一段能不能拆分?我们需要枚举一个切分点。
2025-11-26 00:11:58
184
原创 leetcode198 打家劫舍(AC)
关键是找到状态方程dp[i] = Math.max(dp[i-1],dp[i-2]+nums[i])自己做出来的,值得表扬。
2025-11-25 21:29:27
287
原创 leetcode118 杨辉三角
借着这个题来复习一下,arraylist.get()可以取出数组对应位置的值。多个数组要记得用List<List<Integer>>
2025-11-25 21:10:02
78
原创 leetcode287 寻找重复数(复杂度低,快慢指针)
用数组写的,通过了但是空间复杂度不达标,看一下标准答案:从到的距离(这是我们想求的)。:从到的距离(乌龟跑进圈里走的那段)。:从继续往前走,回到的距离(圈里剩下的那段)。:环的总长度 =。
2025-11-23 20:15:44
327
原创 leetcode347 前K个高频元素
因为是小顶堆,堆顶永远是“目前前 k 个里频率最低的”。把最小的踢走,剩下的自然就是频率最高的 k 个。如果堆的大小超过了 k,则将堆顶元素(当前堆中频率最小的那个)弹出。:最后堆中留下的 k 个元素就是答案。入堆是offer,出堆是poll。) 统计每个数字出现的次数。:建立一个大小为 k 的。遍历哈希表中的元素。
2025-11-22 22:53:55
208
原创 leetcode 215 数组中的第K个最大元素
好的,鉴于今天心情好,来学习一下正确答案。(今天10月28号,30号考dataMining,但是不想复习)但是可惜,要求时间复杂度为O(n),如果强行用的话,恐怕要加入人才库。这道题看见之后第一反应直接秒。
2025-10-28 19:28:13
219
原创 leetcode 739 每日温度
这是个单调栈问题,stack来存储右侧温度,要注意栈顶为最小,由上往下递增,如果有>=栈顶的入栈(因为==栈顶的入栈会让最大位置左移,所以也要包含进去,需要逐个弹出。
2025-10-28 15:05:17
162
原创 leetcode155 最小栈
这是一个 Java 开发者面试中非常常见的问题,也是新手很容易犯的错误。比较对象的内容是否相等,永远使用.equals()方法。
2025-10-27 19:11:39
296
原创 英文文章降ai指令
例如: “This review will center on this key domain.” (本综述将围绕这一关键领域) → “...the rest of this review would focus on this hot topic.” (本文的其余部分将聚焦于这个热门话题)。可以大胆使用 “If... then...” (如果...那么...) 或者 “The good thing is..., but the downside is...” (好处是...但缺点是...) 这样的结构。
2025-10-11 18:46:34
316
原创 leetcode2两数相加
这题要注意在while循环里判断l1和l2当前是否为空,因为他们长度可能不一样。移动l1和l2也要判断,因为null没有next。
2025-09-25 19:47:00
195
原创 leetcode24 两两交换链表中的节点
这个题很明显需要一个pre和两个交换节点,这三个节点如果在一开始就创建出来的话,后面移动节点会出现问题,因为前后位置交换了。所以我们只创建pre节点,在每次循环的时候来创建后两个交换节点,然后移动pre节点。再次强调,node1和node2是在循环里根据pre来生成,每次循环只移动pre节点。
2025-09-24 23:49:56
130
原创 leetcode19删除链表的倒数第N个节点
双指针,这三个字提示就足够了。注意最后是pre.next=pre.next.next而不是pre.next=tail。tail用来探测末尾,删除节点全靠pre。
2025-09-22 18:06:36
209
1
原创 leetcode2 两数相加(没做出来)
现在是25年9月21日晚上11点25,状态有些不好了,脑子停转,写不出东西来。要注意节点为null的时候去val会报错,所以要写成三元运算符形式。循环停止需要l1 l2都是空,且进位也是0的时候。
2025-09-21 23:29:09
195
原创 leetcode141环形链表
要注意set的添加是add,set判断有没有是contains。只需要存储ListNode,不需要存键值对,选set。map添加是put,两者的删除都是remove。只需要存,不需要排序,选hashset。
2025-09-20 20:37:20
196
原创 leetcode234回文链表
再遍历一遍原链表,同时与栈顶做比较(pop出栈相当于反转了链表),如果有不相等的返回false。这道题一眼用栈,可惜我对栈的知识早就忘了,正好复习一下。先遍历一遍原链表,加入栈中。
2025-09-20 19:33:18
168
原创 leetcode206反转链表
本题需要三个指针,null、head和head.next,但是第三个指针创建前需要判断第二个节点是否为空,因为如果第二个节点已经是null了,那null.next会报错。最后return要注意return的prev,因为那个时候pcur已经是null了。
2025-09-19 23:51:22
176
原创 leetcode160 相交链表
显然,这两条路径的长度是完全相同的。如果存在相交节点,那么它们必定会在这个节点相遇。可以看到,它们走的总步数相等,最终会同时到达相交节点。这道题做过好几次,但是每次都忘记,希望这是最后一次。步),它会转向 B 的头部。步),它会转向 A 的头部。它们会同时走完各自的路程,并且最终都指向。: 假设链表 A 在相交点前的长度为。开始,遍历完链表 A 后,接着从。开始,遍历完链表 B 后,接着从。走完 A 再走完 B,总路程是。走完 B 再走完 A,总路程是。,链表 B 在相交点前的长度为。
2025-09-19 23:14:21
220
原创 leetcode 240 搜索二维矩阵II
这道题一看就知道要从矩阵的四个角入手,但是我们可以发现,左上和右下两个角的两个相邻格子的变化趋势是一样的,不好用。我们来看右上和左下两个角,发现相邻格子的变化趋势是一个大于本格子,一个小于本格子,所以我们选择从右上来入手,类似二分查找。
2025-09-19 20:42:15
128
原创 leetcode 48 旋转图像
刚做完上一道顺时针输出数组,思维被禁锢住了。:将矩阵的行和列进行互换。:将转置后的矩阵的每一行进行反转。完成这两步后,图像就实现了顺时针 90 度的旋转。
2025-09-18 19:26:16
281
原创 leetcode 54 螺旋矩阵
这道题用模拟做,非常直观,但是要注意题目给的是m✖️n的矩阵,并非一定是正方形。可以只是一行或一列,所以在top和right移动之后(++),要检查是否top<=bottom,如果不检查会导致只有一行的情况下重复输出两次。
2025-09-17 18:26:31
174
空空如也
c语言亲密数,没有输出
2021-10-17
C语言想实现按上下箭头选择不同项目
2021-10-06
c语言用函数实现素数加和,无法运行
2021-10-12
一个c语言题,用泰勒级数计算sinx,count输出不对
2021-10-10
C语言题,运行结果没问题,但是系统不给通过
2021-10-01
要输出两个异号数字,可以运行,但是系统不给过
2021-10-02
为什么删掉第九 十行的花括号,输出的x2就对了,不删掉输出就是0
2021-10-02
作业题,不让用if,必须用三元运算符
2021-09-25
学校作业题,看不出哪里错了
2021-09-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅