![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode刷题
文章平均质量分 75
吴满鹤
这个作者很懒,什么都没留下…
展开
-
LeetCode(力扣)::19. 删除链表的倒数第 N 个结点
leetcode通过。此题采用的代码难度是非常低的,只有非常基础的遍历和删除操作。但是其中所蕴含的思想是需要认真思考的代码思想。如果我们要求他倒数第n个结点,在遍历之前我们并不知道是不是倒数第n个。那么我们就可以采用快慢指针的思想,将fast和slow的指针距离先拉到n,再同时移动两个指针,这样一来,就可以保证在fast遍历到链表尾的时候,slow所指向的就是n位置结点。(因为fast和slow的距离就是n,fast已经在结尾了,slow自然就在fast之前的倒数第n个位置)原创 2023-04-26 23:37:09 · 47 阅读 · 0 评论 -
LeetCode(力扣)::206.反转链表
leetcode通过。此题不仅考验我们对于链表next指针的理解,同时也考察了我们对于代码的掌控能力。我们要时刻控制指针的指向位置,防止发生危险访问,并且要保证指针的顺序。严格按照前中后的顺序去移动。原创 2023-04-25 12:13:05 · 85 阅读 · 0 评论 -
LeetCode(力扣)::203移除链表元素
leetcode通过。我们再来回顾一下该题的一些算法思想和要点。即建立双指针,永远保持一前一后的状态(cur在前,prev在后)。cur指针用来判断当前元素的值是否符合val,prev指针用来在符合题意的情况下,删除cur指针指向的结点(链表的删除一定要知道前一结点的位置!在该题当中,特殊情况就在于判断首结点的值,除题解之外我们也可以采用一种通法来解决,即:创建一个虚拟头指针,将链表内结点全部变为普通结点,从而实现统一操作。原创 2023-04-25 10:36:18 · 109 阅读 · 0 评论 -
LeetCode(力扣)::27. 移除元素
leetcode通过。此题主要考察的是我们对于双指针的一个进阶用法——快慢指针,通过两个指针性质不同的特点,在一次遍历中完成两个任务——1、遍历数组,筛选符合条件的元素。2、更新数组长度并返回。快慢指针可以有效地提高循环效率,使得单一循环可以具有更多功能。原创 2023-04-25 00:22:54 · 39 阅读 · 0 评论 -
LeetCode(力扣)::977. 有序数组的平方
leetcode通过。此题运用的思路是一个很简单的双指针对比思想。按原数组元素的大小顺序,依次放入新数组,完成一个新数组的排序。此时该算法的时间复杂度为O(N),因为我们只遍历一次数组,每次进行的操作只有对比操作,可以看作常数阶。原创 2023-04-24 22:35:21 · 84 阅读 · 2 评论