- 博客(5)
- 收藏
- 关注
原创 Day04: 24. 两两交换链表中的节点 +19.删除链表的倒数第N个节点 +面试题 02.07. 链表相交 +142.环形链表II
因为fast的速度是slow的两倍,并且他们没有在环口相遇,那么slow走半圈的时候,fast一定又走完了一圈,如果前半圈没有相遇,那么slow继续走半圈,fast又走一圈,那么他们一定会在slow接下来走的这半圈内相遇。因为要删除某一个,或者对某一个节点进行操作就需要找到它前面的节点(因为前面的节点next指向需要删除的节点),所以要从虚拟头节点开始进行遍历。,n为fast指针在环内走了n圈才遇到slow指针, (y+z)为 一圈内节点的个数A。
2023-12-30 20:24:50 1293
原创 Day3-----203.移除链表元素 ● 707.设计链表 ● 206.反转链表
但是,被释放的内存空间的值并没有被清除,它们仍然存在于内存中,只是变成了未定义的值。进行while循环,循环终止条件是head为空指针,就会跳出循环,再循环体内,先把head指针的next存储下来,因为接下来head的next会指向pre(向前指),这样就能更新head。通过将指针置为空,我们可以明确地表示该指针不再指向任何有效的内存空间,以便后续的代码可以正确处理。在接下来的代码中,如果不小心使用了。因为head为空了,pre为最后一个节点了,并且现在是向前指的,所以return pre;
2023-12-30 14:48:46 969 1
原创 977.有序数组的平方+209.长度最小的子数组(双指针-滑动窗口)+ 59.螺旋矩阵II
可以理解为一个为慢指针,慢指针不动,另外一个快指针继续向下寻找元素能够目标,满足目标后,慢的指针再去追赶快的指针,但是在追赶的过程中要始终满足目标,如果慢指针追赶过程不符合目标,快指针就需要继续向下寻找。当要取最后一个的时候,sum加完后right已经到最后一个了,跳出内层for循环了,所以要将 sum += nums[right];窗口的起始位置如何移动:如果当前窗口的值大于s了,窗口就要向前移动了(也就是该缩小了)。窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。
2023-12-28 20:53:04 360
原创 Day1 |力扣704二分查找+力扣27移除元素
count++,因为执行完这句就是下一个数组 下标了,如果找到了就不会执行if语句即当前count就是目标数,需要用后面的数将其覆盖。第一次写的时候写成了nums[++count] = nums[i];链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台。定义 target 是在一个在左闭右闭的区间里,区间的定义这就决定了二分法的代码应该如何写,
2023-12-27 18:30:55 576 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人