- 博客(10)
- 收藏
- 关注
原创 代码随想录算法训练营第十天|232.用栈实现队列
用栈实现队列,要搞清楚栈和队列的区别,栈是先进后出,队列是先进先出,所以达到目的的话要使用两个栈,最终实现队列的目的。
2025-04-01 20:43:15
186
原创 代码随想录算法训练营第九天| 151.翻转字符串里的单词
这个题关键是我看视频愣是对非首个字母前要加一个空格理解不了,后来问了deepseek才明白,其实这个题目用python实现还是挺简单的,python的代码就放在后面,主要是针对这个C++的removeExtraSpaces函数进行一个理解。(前后各2空格,中间3空格)
2025-04-01 20:37:51
458
原创 代码随想录算法训练营第八天| 344.反转字符串、 541. 反转字符串II
这一题倒是没太多可讲的地方,主要还是理解原理,其实是用到了双指针。这题对我来说还是太有难度了,我想不出来。
2025-03-27 23:58:38
144
原创 代码随想录算法训练营第七天|454.四数相加II
这题的解题过程,直接用四个for循环去暴力解的话时间复杂度太高,通过将前两个数组合并(各个数相加)成一个字典,后两个数组合并(各个数相加)成一个字典从而降低时间复杂度。为什么合并成字典,是因为合并之后出现的相同数字要算上次数。在此不熟悉的可以查一下数组和字典的区别。
2025-03-27 23:52:48
171
原创 代码随想录算法训练营第六天|242.有效的字母异位词
在这个有效的字母异位次词中,相当于每个字母有一个对应的抽屉,在第一组字母中挨个把字母放到对应的抽屉,然后开始遍历第二组字母,遍历到的字母,从其对应的抽屉中拿出来一个。最后挨个检查抽屉,注意是挨个,不是所有抽屉的总和为0,是每一个抽屉都要为0,如果有一个不为0,则说明这两组字母不是一 一对应的。总的来说就是底层逻辑一样的,但是哈希表的存储更为灵活,但同时会存在哈希碰撞的问题。其实哈希表是一种特殊的数组,然后我问了AI它给了我一个比喻;
2025-03-25 21:54:16
359
原创 代码随想录算法训练营第三天| 206.反转链表
这个题目我主要是对代码中的循环部分进行了理解,其实有点像需要交换两个瓶子里的水需要三个瓶子,所以在循环过程中可以看到实际上是有三个指针的,还有我想强调一点的是pre是初始化的None,而不是链表尾巴的None。以下是我理解循环时画的图。
2025-03-16 16:24:07
174
原创 代码随想录算法训练营第三天| 203.移除链表元素
移除列表元素有两种方法,第一种就是直接移除,特点就是直接将指向需要删除的元素的指针指向起下一个元素,但这种方法没办法删除第一个元素,从而出现了第二种方法,那就是设置虚拟的头节点,使其指向原来的头节点,此时头节点变成了第二个元素,这时候使用指针从虚拟头节点开始遍历,遇到需要删除的元素,直接将指向其的指针指向它的下一个元素。今天时间确实来不及了,所以简单学了一下概念。203.移除链表元素。
2025-03-15 01:53:37
167
原创 代码随想录算法训练营第二天| 209.长度最小的子数组、 59.螺旋矩阵II
那么这时候再动左边的指针,缩短距离,因为有可能更短的距离会符合大于等于目标数值的要求,例如[1,1,1,1,100],目标数值是100,一开始一直动到第五个数字,相加之和才大于等于100,那么这时候左边就要动了,会发现子数组缩短还是满足条件,那么就要更新长度的信息,直到缩短到不符合条件,右边指针再继续动。以下是我的错误代码,我在debug的时候发现大循环是无限循环的,没办法结束,尝试过n-1或者n-2去改变数值但是还是错了,但是n/2是按照代码随想录视频写的。力扣 59.螺旋矩阵II。
2025-03-13 22:44:53
182
原创 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素、977. 有序数组的平方
双指针法实际没有删除数据,快指针扫到的需要删除的数值不将其赋值给慢指针。LeetCode 977. 有序数组的平方。LeetCode 704. 二分查找。LeetCode 27. 移除元素。
2025-03-13 00:07:13
174
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅