leetcode
69岁的老干部
这个作者很懒,什么都没留下…
展开
-
Leetcode 160. 相交链表
【代码】Leetcode 160. 相交链表。原创 2022-11-13 16:28:33 · 173 阅读 · 0 评论 -
Leetcode 142. 环形链表II
【代码】Leetcode 142. 环形链表II。原创 2022-11-13 16:15:48 · 160 阅读 · 0 评论 -
Leetcode 234. 回文链表
【代码】Leetcode 234. 回文链表。原创 2022-11-12 16:58:36 · 152 阅读 · 0 评论 -
Leetcode 92. 反转链表II
【代码】Leetcode 92. 反转链表II。原创 2022-11-12 16:49:30 · 162 阅读 · 0 评论 -
Leetcode 19. 删除链表的倒数第N个结点
思路:这道题是双指针法的经典应用,如果要删除倒数第n个结点,让 fast(快指针)先移动n步,然后让 fast 和 slow 同时移动,直到 fast 指向链表尾,这样 slow 就指向了倒数第n个结点,再将其删掉即可。2.fast 先走n+1步(这里非常关键),这样在同时移动后,last 就指向了第 n-1 个结点(即目标删除结点的上一个结点),这样更加方便删除操作。1.建议使用虚拟头结点,让 fast 和 slow 的初值指向虚拟头结点,这样更加方便操作。原创 2022-11-11 22:19:22 · 98 阅读 · 0 评论 -
Leetcode 206. 反转链表
【代码】Leetcode 206. 反转链表。原创 2022-11-11 21:09:53 · 135 阅读 · 0 评论 -
Leetcode 203. 移除链表元素
【代码】Leetcode 203. 移除链表元素。原创 2022-11-10 11:54:56 · 127 阅读 · 0 评论 -
刷题——数组篇总结
双指针法(快慢指针法):主要通过一个快指针和一个慢指针在一个for循环下完成两个for循环的工作,快指针遍历数组,慢指针保存需要的元素。滑动窗口的思想,主要明确窗口的内容是什么,窗口通过起始位置的变换,达到动态更新窗口大小的效果,从而得出最小的符合条件的长度。这一类的题目在数组中也比较常见,不涉及什么算法,就是单纯的模拟,十分考察对代码的掌控能力,同时这一题中叶体现了循环不变量原则。数组是非常基础的数据结构,考察数组的题目一般在思维上都不难,主要考察对代码的掌控能力。滑动窗口的时间复杂度也是O(n)。转载 2022-11-08 09:48:09 · 78 阅读 · 0 评论 -
Leetcode 59. 螺旋矩阵 II
螺旋矩阵虽然不涉及具体的算法,但是模拟的过程却十分考验代码的能力,一不小心就容易将其写乱。原创 2022-11-07 22:06:26 · 277 阅读 · 0 评论 -
Leetcode 209. 长度最小的子数组
在本题中,窗口内即满足和 ≥ target 的长度最小的连续子序列;当窗口内的连续子序列的和大于 target 时,就要将窗口的起始位置向前移动(即移动窗口);而窗口的结束位置即为遍历窗口的指针,通过起始和结束位置的变化即实现了窗口的滑动。1.暴力法 (复制的官方题解,但却提交超时)2.滑动窗口(也可以看作双指针的一种)(2)如何移动窗口的起始位置?(3)如何移动窗口的结束位置?(1)窗口内是什么?原创 2022-11-07 17:28:02 · 191 阅读 · 0 评论 -
Leetcode 26. 删除有序数组中的重复元素
【代码】Leetcode 26. 删除有序数组中的重复元素。原创 2022-11-06 01:19:36 · 120 阅读 · 0 评论 -
Leetcode 27. 移除元素
设置 slow 和 fast 两个指针,fast 用来实现 for 循环遍历数组元素,slow 用来记录要保存的元素。要注意的点是在移除元素时的 i-- 和 numsSize-- 操作。原创 2022-11-06 00:54:20 · 103 阅读 · 0 评论 -
Leetcode 35. 搜索插入位置
【代码】Leetcode 35. 搜索插入位置。原创 2022-11-04 23:14:56 · 54 阅读 · 0 评论