- 博客(6)
- 收藏
- 关注
原创 代码随想录|Day06|链表:203.移除链表元素 707.设计链表 206.反转链表
该题比较基础,这里采用构造一个虚拟头结点的写法,更便于操作,省的讨论是不是头结点了。
2026-01-08 00:39:01
99
原创 代码随想录|Day05|54.螺旋矩阵 KC.区间和 KC.开发商购买土地
这道题整体思路和上道题(59.螺旋矩阵Ⅱ)一致,不同的地方在于这道题的矩阵并不一定是方阵,通过举例子可以得出(2行3列,3行4列,4行3列等等):若行列最小值为偶数,那么在圈内就可以处理完,不需要额外处理;但若行列最小值为奇数,那么最终就会存在一个中间行或中间列需要额外处理。
2026-01-06 22:42:00
245
原创 代码随想录|Day04|904.水果成篮 76.最小覆盖子串 59.螺旋矩阵Ⅱ
采用滑动窗口法(即双指针法),设置快慢指针,并定义两个篮子,开始时两个篮子所装元素都是首元素,随后开始对快指针的for循环,当快指针所指元素与两个篮子的元素都不相同时(此时不满足题意,需要调整),就将新元素装入第二个篮子,将慢指针跳到快指针之前,新元素前的那个元素装入第一个篮子,随后就开始对慢指针的while循环,旨在找到最先出现第一个篮子里元素的位置。每个for循环最后一步要比较子数组数目。
2026-01-04 23:34:12
341
原创 代码随想录|Day03|283.移动零 844.比较含退格的字符串 977.有序数组的平方 209.长度最小的子数组
和移除数组元素的思路一样,采用双指针法,只要把最后剩余的空缺补0就可以了。
2026-01-04 00:13:03
310
原创 代码随想录|Day02|69.x的平方根 367.有效的完全平方数 27.移除元素 26.删除有序数组中的重复项
整体的思路和上道题相同,依然使用双指针法,不同的地方在于这里的快指针是要和它后面的元素比来保证仅保留一次重复数据,但这样带来的问题是数组最后一个元素总是处理不到(因为在遍历到倒数第二个元素时就停止了),因此需要单独处理一下最后一个元素。这道题关键在于如果能找到刚好满足的整数那就直接返回mid就好(废话),但要是x的算术平方根是小数就麻烦了(在暴力解中可以返回第一个大于x的前一个数,但在二分法中不能这样),那么就得分成平方根是整数或小数两种情况,空间复杂度:O(1)时间复杂度:O(n)空间复杂度:O(1)
2026-01-02 19:42:17
306
原创 代码随想录|Day01|数组:704.二分查找 35.搜索插入位置 34.在排序数组中查找元素的第一个和最后一个位置
假如目标值不在数组中,那么最后的结果肯定是low在high的后面一个单元,再根据给出的示例可以枚举出,只需要将折半查找中的return -1改成return low即可。一次寻找左边界,一次寻找右边界,在找到target的时候应继续让left或right移动,避免死循环,并且最后会落到第一次出现的左边或最后一次出现的右边。这个解法会使程序陷入死循环,因为在找到target时没有给下一个low和high赋值,导致一直重复这个过程。直接用王道书上的折半查找代码。
2026-01-02 00:31:22
206
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅