- 博客(6)
- 收藏
- 关注
原创 代码随想录算法训练营第六天 | 454. 四数相加 II、383. 赎金信 、15. 三数之和
本题主要是考虑如何将一个时间复杂度O(n^4)的算法降低时间复杂度,很容易想到直接4个for循环暴力计算,但其实本题既不关注4个元素在各自数组中的位置,也不关注其各自大小,题目只是需要最后的和满足某个条件即可,所以重点是“和”,以及满足这个“和”的组合有多少个,反正每个数组都得出一个元素,那就所以把4个数组揉在一起算,不如两两分组变成O(n^2)好了,用哈希法也是因为题目只关注“和是多少”,“有多少个”这两个信息,所以我们可以联想到python中字典两要素不正好是key和value嘛。那如果是5个数组呢?
2025-10-24 13:38:58
638
原创 代码随想录算法训练营第五天 | 242. 有效的字母异位词、349. 两个数组的交集
242题目不难,主要是判断一下两个单词中每个字母的出现字数, 用一个数组来表示一下即可,但是里面使用到的一些函数需要记忆一下:1.ord(i):用于2.还可用于此题的Counter和可以直接统计可迭代对象中各元素的出现次数。两个CounterCounter是一个字典,访问不存在的键时会自动创建默认值(比如int默认为 0)。
2025-10-23 13:37:25
415
原创 代码随想录算法训练营第四天 | 142. 环形链表 II
可以从图中看出从头结点发出一个指针index1,让他每次只走一步,再从相遇节点发出一个指针index2,也让他每次只走一步,他们一定会在环形入口相遇,因为从公式中可以看出,index1走过x步以后,index2也相当于走了z步+额外围着环转了(n-1)圈,index2走了z步后即到了环起点,再无论转多少圈仍然回到起点,所以可以通过这个方法找到环的入口。在相遇时,fast走过的节点一定是slow节点的2倍,从而有公式(x + y) * 2 = x + y + n (y + z)
2025-10-23 12:07:44
105
原创 代码随想录算法训练营第三天 | 203. 移除链表元素、 707.设计链表 、206.反转链表
都是链表算法的基础题目,但也位后续算法打下了基础,之前考研和复试都有不错的基础,这次再使用python的语法敲一遍,也算熟练了python语言。简单题,但是熟悉一下python的类的编写,思维从C语言转换过来。
2025-10-15 23:12:03
78
原创 代码随想录算法训练营第二天 | 209. 长度最小的子数组、59. 螺旋矩阵 II
遇到这道题我的思路就是,先初始一个二维矩阵用来填写数组,再初始化一个同样纬度矩阵用来做为标记矩阵,从00开始往右依次放入数据,如果遇到边界(这里的边界包含两种,一个是数组本身边界,另外一个是行进方向上,下一个数据在标记矩阵中对应为True)就改变方向,方向为右,下,左,上对应0,1,2,3(%4),直到修改过n^2的数据就结束返回。
2025-10-14 19:21:46
288
原创 代码随想录算法训练营第一天 | 704. 二分查找
这两天给导师干活比较忙,今天得空休息赶快赶赶进度,今天补10号开营第一天的任务打卡,回顾了一下数组的内容,因为今年刚考研上岸,所以对二分查找的内容还算熟悉,不过再看代码随想录的比较确实还是有新的收货。2.二分查找的左闭右开和左闭右闭两种形式的代码编写却有不同,曾经只是掌握了左闭右闭,今天仔细的学习了下左闭右开也有了新的收货,不过我感觉这类题目使用画图工具来解决也是事半功倍。3.今天体验挺好的,代码随想录提供了很多高效的工具和非常有用的笔记分享,感觉这次跟营发现宝藏了呢。
2025-10-12 17:31:33
99
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅