自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 代码随想录|节点交换|删除倒数第N个节点|链表相交|环形链表Ⅱ

首先介绍一下交换节点的一般步骤和迭代法,两两交换节点时,需要改变三个节点的指针,因此需要使用虚拟头节点,完成交换并返回正确的头节点。这种方法在每次迭代时需要三个节点,并且需要改变这三个节点的指针,每次迭代需要前进两个单位的索引。状态:可以使用快慢指针检测出是否存在环,但是无法判断入环节点,看文档学会了,但是需要复习。也可以使用双指针,前一个指针延迟后一个指针N个索引,遍历一次链表解决;讲的很形象,最后得到的结论是,若有环,必然存在两个指针指向同一个节点。首先第一个问题,快慢指针可以解决,

2024-06-28 22:37:38 357

原创 代码随想录第三天|移除链表元素|设计链表|反转链表

然后介绍不使用虚拟节点的方法,这种方法删除头节点以外的节点时逻辑相同,都是在待删除节点的前一个节点上进行指针操作,但是在删除头结点时,需要在待删除节点上进行操作,因此在这里应该分情况讨论。首先介绍使用虚拟头节点对链表进行操作,这样做的好处是头节点往往需要特殊的操作,使得编辑头节点时需要额外写一段逻辑,如果使用虚拟头节点的话就没有这个问题。下面首先介绍使用虚拟头节点的方法。这个方法删除指定索引处的节点,整体方法与第一道题移除节点相同,需要注意的是,如果移除的是头节点或者尾节点,相应的指针也需要改变。

2024-06-27 23:36:54 756

原创 代码随想录第二天|有序数组的平方|寻找最短子数组的长度|螺旋数组Ⅱ

本文介绍滑动窗口方法,使用两个指针分别指向滑动窗口的左端和右端,由于要求寻找长度最小的子数组,因此滑动窗口从零开始增长,初始都指向数组的第一个元素,右侧指针作为索引进行遍历,左侧指针用于在满足条件1后记录满足条件的子数组长度并对滑动窗口收缩寻找下一个满足条件的子数组。有序数组平方后,数组两侧的值大于数组中间的值,因此,采用两个指针由数组两侧指向数组中间。状态:在得知采用滑动窗口之后,尝试将窗口左侧指针遍历数组元素,但是复杂度与暴力解法相同,查看文档后,将窗口右侧指针作为遍历元素的索引之后AC。

2024-06-24 21:39:30 335

原创 代码随想录算法训练营第一天|二分查找|移除元素

我在第一次解题时,在for循环中对fast指针进行两次递增操作,而不是暂停慢指针使得两个指针速度错开,这使得调试代码时发生数组越界问题。快指针负责遍历元素并对当前遍历的元素进行判断,是否为目标元素,若是目标元素,将慢指针暂停遍历,直到快指针遍历到下一个非目标元素,覆盖慢指针的值,慢指针开始递增。状态:初次刷题,使用左开右开的方法做出来了,但是由于这种方法对区间把握不当,修改6次后才AC。状态:使用遍历法并搬移数组元素实现,之后查看文档中的GIF动图,实现双指针方法。时,搜索区间只包含一个数组元素。

2024-06-23 00:42:45 738 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除