自定义博客皮肤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)
  • 收藏
  • 关注

原创 代码修炼Day4_LeetCode24两两交换节点&19删除链表的倒数第N个节点&面试链表相交&142环形链表II

让fast先移动n个节点,然后fast和slow同时移动,知道fast指向链尾,删除slow指向的节点即可。使用虚拟头结点方便统一操作,需要一个指向下一组进行两两交换的指针记录位置,同时使用p,q保存临时节点。对于环的判断,可以使用双指针,fast每次比slow多走一步即可得出,如果有环就会相遇。题目好理解,用数学算式可以推出来关系表达式,但是代码实现确实有点思路跟不上了…可以遍历一次得到链长L,第二次遍历到L-n+1即为应删除节点。时间复杂度:O(a+b),链表A、B的节点数量为a、b。

2023-04-23 00:12:27 141

原创 代码修炼Day3_LeetCode203移除链表元素&707设计链表&206翻转链表

单链表删除节点,先找到需删除节点的前节点,将前节点直接指向该节点的后节点进行删除。此算法直接对原链表进行修改,可优化,设置虚头结点,方便统一操作。为了统一操作,设置了虚拟头结点。设置借口,需要注意边界细节。翻转链表可以直接使用双指针来改变指针方向。时间复杂度:O(n),需要将链表遍历一遍。设计思路一样,但更繁琐,后面补代码。时间复杂度:O(n)空间复杂度:O(1)空间复杂度:O(1)

2023-04-22 16:17:02 250 1

原创 代码修炼Day2_LeetCode977有序数组的平方&209长度最小的子数组&59螺旋矩阵II

再重新定义一个和原数组一样大小的数组,将比较后的最大值放到新数组的最后面,进行头插,得到一个非递减的有序数组的平方数组。因为原数组有序(非递减),那么可以由两边向中间进行比较,因为左侧可能是负数,平方后的值可能比右侧大,也可能比右侧小。【注】暴力排序的时间复杂度为O(n+nlogn),可视为O(nlogn)滑动窗口其实和双指针类似,其中i为子数组起始位置,j为子数组终止位置。双层for循环,i为起始位置,j为终止位置,遍历出符合条件的子数组。此时将i向右移动,判断移动后的新数组是否仍大于等于target,

2023-04-21 00:37:45 242 1

原创 代码修炼Day1_LeetCode704二分查找&27移除元素

数组下标都是从0开始的数组内存空间的地址是连续的。

2023-04-19 23:48:58 741

空空如也

空空如也

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

TA关注的人

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