刷题笔记
我有大病
这个作者很懒,什么都没留下…
展开
-
刷题笔记----手把手刷树组。力扣【26】【83】【27】【283】【167】【344】【5】
思路:快慢指针,快指针探路,发现与慢指针数值不同,就将慢指针前进一步,并将快指针的数值传给慢指针,快指针继续探路。流程下来相当于数组前面的内容都是无重复的。原创 2022-11-22 22:03:46 · 218 阅读 · 0 评论 -
刷题笔记----每日一题:力扣234. 回文链表
思路一:利用双指针技巧找到链表中点,将后半段链表反转,然后与前半段链表比较。这些技巧也是之前我们用到过的。思路二:利用栈的先进后出,将链表都入栈,然后一个一个出栈并与原链表进行比较,缺点是空间和时间复杂度比较大。原创 2022-11-19 16:23:18 · 173 阅读 · 0 评论 -
刷题笔记----每周例题:206. 反转链表.92. 反转链表 II,25. K 个一组翻转链表
206. 反转链表.92. 反转链表 II,25. K 个一组翻转链表分别有递归迭代算法原创 2022-11-16 17:21:41 · 167 阅读 · 0 评论 -
刷题笔记----每日一题:力扣142. 环形链表 II
如下图,假设在b点相遇,由于快指针走的是慢指针两倍,所以环长度等于曲线OB的长度,两者去掉相同的长度AB,剩下的长度也一样。这是一个从头节点出发,一个从B节点出发,相同速度,再次相遇就是A点,也就是环的起点。思路:还是用快慢指针,首先判断链表是否有环,如果fast->next为空,说明没环,如果有环,当两个指针相遇时,快指针比慢指针多在环里转了一圈(这样他们才能相遇)原创 2022-11-11 18:45:53 · 126 阅读 · 0 评论 -
刷题笔记----每日一题:力扣876. 链表的中间结点
其实可以用快慢指针来解决这个问题,慢指针走一步,块指针走两步,这样当快指针走到了末尾,慢指针刚好走到中间位置。如果知道链表的大小就会变得很简单,要只知道大小,我们就要遍历一遍链表,然后在便利一遍求出中间节点。原创 2022-11-10 17:31:13 · 95 阅读 · 0 评论 -
刷题笔记----每日一题:力扣19. 删除链表的倒数第 N 个结点
我们只遍历了一边就完成了任务。原创 2022-11-10 16:59:05 · 91 阅读 · 0 评论 -
刷题笔记----每日一题:力扣23. 合并K个升序链表
思路:看到排序,我就很自然的想到最大最小堆,本题适用于最小堆的优先队列,依次从队列中取出队顶元素即可,当然也可以像合并两条链表(力扣21题。)那样做,不过复杂度比较大。原创 2022-11-10 00:25:35 · 153 阅读 · 0 评论 -
刷题笔记----每日一题:力扣86. 分隔链表
第二种方法处理起来比较麻烦,要处理一些特殊情况,所以引入了f,g但是也算是减少了占用空间。原创 2022-11-08 16:51:53 · 118 阅读 · 0 评论 -
刷题笔记----每日一题:力扣21. 合并两个有序链表
刷题笔记----每日一题:力扣21. 合并两个有序链表。原创 2022-11-07 20:08:00 · 145 阅读 · 0 评论