
leetcode
洞阳
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode 291. Word Pattern II和290. Word Pattern
用stringstream分割字符串。原创 2025-06-20 19:01:27 · 309 阅读 · 0 评论 -
leetcode 530. Minimum Absolute Difference in BST和783. Minimum Distance Between BST Nodes
【代码】leetcode 530. Minimum Absolute Difference in BST和783. Minimum Distance Between BST Nodes。原创 2025-06-18 21:18:22 · 268 阅读 · 0 评论 -
leetcode 98. Validate Binary Search Tree和700. Search in a Binary Search Tree
【代码】leetcode 98. Validate Binary Search Tree和700. Search in a Binary Search Tree。原创 2025-06-18 20:53:42 · 186 阅读 · 0 评论 -
968. Binary Tree Cameras
如果不判断整个树的根节点是否被覆盖,则无法通过下面这种情形。要从下往上处理,所以框架是后序遍历。原创 2025-06-12 23:59:14 · 617 阅读 · 0 评论 -
135. Candy
考虑右边的比左边大的情况,必须从前到后遍历。考虑左边的比右边大的情况,必须从后到前遍历。先考虑那种情况都可以。原创 2025-06-12 16:59:57 · 224 阅读 · 0 评论 -
134. Gas Station
【代码】134. Gas Station。原创 2025-06-12 16:49:29 · 469 阅读 · 0 评论 -
406. Queue Reconstruction by Height
用vector自己的insert函数,位置指定用迭代器。随机迭代器支持+n操作。然后按照直接插入排序的想法,将每个人插入到他应该到达的位置。不过寻找插入位置仍然是O(n)的时间复杂度。先按照身高从大到小排序,身高相等的k小的站前面。插入会很耗时,时间复杂度是O(logn+n^2)复用输入数据people,手写直接插入排序。原创 2025-06-12 16:28:03 · 522 阅读 · 0 评论 -
45. Jump Game II
正向查找可到达的最大位置。时间复杂度O(n^2)原创 2025-06-11 20:27:48 · 308 阅读 · 0 评论 -
1005. Maximize Sum Of Array After K Negations
三种方法都是贪心。原创 2025-06-11 20:14:43 · 388 阅读 · 0 评论 -
55. Jump Game
【代码】55. Jump Game。原创 2025-06-10 23:59:13 · 182 阅读 · 0 评论 -
376. Wiggle Subsequence
【代码】376. Wiggle Subsequence。原创 2025-06-10 23:31:44 · 370 阅读 · 0 评论 -
leetcode 108. Convert Sorted Array to Binary Search Tree和1382. Balance a Binary Search Tree
这两道题构建平衡二叉树的方法是一模一样的。原创 2025-06-04 15:25:41 · 286 阅读 · 0 评论 -
leetcode 455. Assign Cookies和2410. Maximum Matching of Players With Trainers
这道题和上面的是一模一样的。原创 2025-06-04 14:57:57 · 295 阅读 · 0 评论 -
23. Merge k Sorted Lists
【代码】23. Merge k Sorted Lists。原创 2025-06-02 23:58:57 · 445 阅读 · 0 评论 -
22. Generate Parentheses
【代码】22. Generate Parentheses。原创 2025-06-01 16:39:12 · 221 阅读 · 0 评论 -
52. N-Queens II
这道题与第51题是一样的。原创 2025-06-01 15:43:08 · 367 阅读 · 0 评论 -
79. Word Search
题目描述。原创 2025-06-01 15:11:30 · 515 阅读 · 0 评论 -
37. Sudoku Solver
【代码】37. Sudoku Solver。原创 2025-05-31 23:57:32 · 408 阅读 · 0 评论 -
51. N-Queens
记录棋盘上已经处于攻击范围的直线,将判断能否摆放新皇后的时间复杂度降为O(1)。原创 2025-05-30 23:37:00 · 1003 阅读 · 0 评论 -
46. Permutations和47. Permutations II
【代码】46. Permutations和47. Permutations II。原创 2025-05-29 22:55:12 · 308 阅读 · 0 评论 -
491. Non-decreasing Subsequences
由于题目保证-100<=nums[i]<=100,去重的哈希表也可以用数组来实现。原创 2025-05-28 23:51:04 · 209 阅读 · 0 评论 -
445. Add Two Numbers II
时间复杂度O(m+n+max(m,n)),m和n是两个链表的长度。空间复杂度是O(1)。时间复杂度O(max(m,n))。空间复杂度O(m+n)。原创 2025-05-28 15:03:32 · 288 阅读 · 0 评论 -
234. Palindrome Linked List
第一步,用快慢指针法找到链表后半部分的开头结点。如果结点个数是奇数,则正中间的结点算作后半部分的开头也可以。可以用递归法逆序遍历链表。时间复杂度O(n)。递归栈的深度是n,所以空间复杂度还是O(n)。将链表后半部分反转。然后同时遍历前半部分和后半部分,逐个比较。也是需要遍历两次,时间复杂度O(n)。空间复杂度O(n)。时间复杂度O(n),空间复杂度O(n)。第三步,同时遍历前半部分和后半部分,判断是否回文。时间复杂度O(n)。空间复杂度O(1)。第二步,反转后半部分链表。第四步,恢复原链表。原创 2025-05-28 14:19:36 · 731 阅读 · 0 评论 -
78. Subsets和90. Subsets II
子集中元素的个数可以是0,1,2...,nums.size()对于每一种情况,可以用回溯来收集。原创 2025-05-27 23:37:24 · 359 阅读 · 0 评论 -
leetcode 131. Palindrome Partitioning
分割回文子串。原创 2025-05-25 20:32:48 · 447 阅读 · 0 评论 -
leetcode 39. Combination Sum和40. Combination Sum II
本题关键是去重。原创 2025-05-25 18:32:47 · 436 阅读 · 0 评论 -
216. Combination Sum III
【代码】216. Combination Sum III。原创 2025-05-25 01:03:50 · 167 阅读 · 0 评论 -
77. Combinations
版本二,最开始的循环是不必要的。原创 2025-05-24 23:44:28 · 318 阅读 · 0 评论 -
leetcode 61. Rotate List和86. Partition List
【代码】leetcode 61. Rotate List和86. Partition List。原创 2025-05-23 23:53:08 · 539 阅读 · 0 评论 -
146. LRU Cache
【代码】146. LRU Cache。原创 2025-05-23 23:39:26 · 400 阅读 · 0 评论 -
leetcode 148. Sort List
【代码】leetcode 148. Sort List。原创 2025-05-22 22:16:20 · 771 阅读 · 0 评论 -
leetcode 83和84 Remove Duplicates from Sorted List 和leetcode 1836
删除链表中的结点合集。原创 2025-05-22 22:12:37 · 613 阅读 · 0 评论 -
leetcode 25. Reverse Nodes in k-Group
【代码】leetcode 25. Reverse Nodes in k-Group。原创 2025-05-21 19:43:17 · 234 阅读 · 0 评论 -
leetcode 92. Reverse Linked List II
思路很简答,但一次性通过还是有点难度的。是第206题的进阶版。原创 2025-05-21 15:08:20 · 622 阅读 · 0 评论 -
leetcode 21. Merge Two Sorted Lists和2. Add Two Numbers
【代码】leetcode 21. Merge Two Sorted Lists和2. Add Two Numbers。原创 2025-05-21 14:28:16 · 338 阅读 · 0 评论 -
138. Copy List with Random Pointer
问题的关键是,random指针指向的是原链表的结点,这个原链表的结点对应哪一个新链表的结点呢?有两种办法。一是用哈希表。另一种是复制原链表的每一个结点,并将新结点接在原结点的后面组成一个长度加倍的链表,这样原结点的直接后继就是该原结点对应的新结点。原创 2025-05-21 11:23:47 · 568 阅读 · 0 评论 -
leetcode 153. Find Minimum in Rotated Sorted Array
如果整个数组是有序的,最小值就是第一个元素。最小值左侧没有元素,理解为有无穷大的值,上述规律也可以说是成立的。最小值右侧(包含最小值自己,不包含x)的元素全部小于x。最小值左侧(不含最小值自己)的元素全部大于x。假如整个数组最后一个元素是x。原创 2025-05-20 18:03:40 · 315 阅读 · 0 评论 -
leetcode 33. Search in Rotated Sorted Array
第二种情况,左右两部分只有一部分是有序的。此时看target是否在有序的那部分。如果是,那就去有序的那部分做正常的二分查找。如果否,说明target在无序的部分,并且问题规模缩小一半,重复前面的逻辑即可。第一种情况:左右两部分都是有序的,说明nums[mid]就是整个数组的最大值。此时只需要判断target在哪个部分,然后去那个部分做正常的二分查找即可。可以发现的是,将数组从中间分开成左右两部分的时候,一定至少有一部分的数组是有序的。左部分[left,mid-1],右部分[mid+1,right]。原创 2025-05-20 17:47:20 · 670 阅读 · 0 评论 -
leetcode 162. Find Peak Element
如果nums[i-1]<nums[i]并且nums[i]>nums[i+1],那么nums[i]就是峰值。除此情况之外,nums[i-1]和nums[i+1]至少有一个大于nums[i],因为题目已经保证相邻的元素不相等。坚持向上坡方向走一定能达到一个峰值,如果往两边走都是上坡,那就随意向两边选一个方向走。原创 2025-05-20 17:29:58 · 316 阅读 · 0 评论 -
leetcode 74. Search a 2D Matrix
要求时间复杂度必须是log(m*n)。那么对每一行分别执行二分查找就不符合要求,这种做法的时间复杂度是m*log(n)。时间复杂度log(m*n),符合要求。原创 2025-05-19 23:44:29 · 339 阅读 · 0 评论