- 博客(278)
- 收藏
- 关注
原创 Windows与浏览器快捷键
Win + i 设置Win + E 我的电脑Win + A 右下角操作中心Win + G 游戏栏(可录屏)Win + D 回到桌面Ctrl + Win + D 创建新桌面Ctrl + Win + ←or→ 交换桌面。
2024-09-21 12:22:45 164
原创 力扣HOT100 - 138. 随机链表的复制
前者的p为一个指向head对象的引用,换句话说,p和head 指向同一个对象,它们共享相同的引用,后者则创建一个全新的Node节点,p与head的val值相同。与Node p=new Node(head.val);
2024-05-21 17:31:10 793
原创 力扣HOT100 - 287. 寻找重复数
接下来,将其中一个指针(快指针或慢指针)重置到起点(即数组的第一个位置),然后两个指针都每次只移动一步。它们再次相遇的位置就是环的起始节点,也就是数组中重复的元素。第一步,慢指针每次移动一步,快指针每次移动两步,直到它们相遇。这一步保证了它们在环中相遇。
2024-05-21 16:36:41 491
原创 力扣HOT100 - 416. 分割等和子集
对于当前考虑的元素 nums[i],如果 dp[ j - nums[ i ] ] 为 true,说明可以用前面的元素构成和为 j -nums[ i ] 的子集,那么在加上当前元素 nums[ i ] 的情况下,就可以构成和为 j 的子集,因此 dp[ j ] 更新为 true。如果 dp[ j - nums[ i ] ] 为 false,则说明无法使用前面的元素构成和为 j-nums[ i ] 的子集,那么无论如何也无法构成和为 j 的子集,因此 dp[ j ] 不变。
2024-05-16 10:35:54 201
原创 力扣HOT100 - 198. 打家劫舍
下标从0开始就用new int[n]就行,如果从1开始会越界才会加1。为什么不是int[] dp=new int[n+1];
2024-05-14 15:03:36 310
原创 力扣HOT100 - 215. 数组中第K个最大元素
而不是 i = l;因为是先执行do语句的内容,一开始进循环就已经先i++或者j--了,所以进循环前需要-1和+1。快速选择,目标是找出数组中第 k 小(或第 k 大)的元素,而不是对整个数组进行排序。(需要和快排进行区分,快排的目的是排序)
2024-05-10 20:35:38 264
原创 力扣HOT100 - 33. 搜索旋转排序数组
旋转排序数组可分为N1 + N2两个部分,如:[4,5,6,7,1,2,3],N1为[4,5,6,7],N2为[1,2,3]所以:如果nums[0] <= nums[mid],即mid落在了N1内,则[0, mid]肯定是有序的。以上两个条件可推出:nums[0]是N1中最小的数,即nums[0] > N2中的所有元素。否则mid落在了N2内,则[mid, n)肯定是有序的。2. N1中的所有元素大于N2中的所有元素;1. N1和N2都是分别递增的;而mid不是在N1内就是在N2内。
2024-05-09 18:30:33 389
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人