- 博客(5)
- 收藏
- 关注
原创 代码随想录算法训练营第六天|哈希表part01
利用好数组哈希表思想跟着敲一遍,才能理解每个部分这段代码通过使用HashSet来记录每个出现过的数字,有效地检测循环,并用数位分解的方法计算下一个数字,从而判断一个数是否为快乐数。如果数字最终能变为1,则返回 true;如果进入循环,则因为重复而返回 false。还是JAVA比较简单好理解。(C语言答案看不太懂,解析也贴在这里了)C语言代码和解析= 0) {return sum;// (版本1)使用数组= 1) {// (版本2)使用快慢指针do {
2024-09-24 15:17:32
803
原创 代码随想录算法训练营第四天|24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II、总结
注意不要断链,更新之前用临时指针存储节点。如何找到倒数第n个节点注意虚拟头节点定义最后返回的头节点是dummy ->nextfree掉dummy面试题 02.07. 链表相交如何找到相交节点。142.环形链表II双指针思路。
2024-09-23 11:59:49
1486
原创 代码随想录算法训练营第三天|203.移除链表元素、707.设计链表、206.反转链表(不完全版)
需要注意:C语言中需要将要删除节点以及虚拟头节点的内存释放掉;注意动态分配内存的写法;最后需要返回虚拟头节点指向节点,因为有可能原来的头节点已经被删掉了。206. 反转链表 - 力扣(LeetCode)
2024-09-21 23:59:22
1669
原创 代码随想录算法训练营第二天| 209.长度最小的子数组、59.螺旋矩阵II、区间和、开发商购买土地
拿下滑动窗口! | LeetCode 209 长度最小的子数组_哔哩哔哩_bilibili问题所在:没有梳理清楚整个代码逻辑,虽然理解题意,要素都在,但排列顺序有问题;应通过举例子顺一遍,应该先让指针右移递加,一旦和满足要求(>=target),首先计算此时长度,比较选取和上一次的最小值;先删除此时左指针元素,减小长度用于下一次判断;然后在处理left左指针,left++(先处理left会导致长度不是此时符合要求的长度;以及)关键点:滑动窗口,分清左右两指针的作用,因此判断清楚循环递增变量用哪一个重点理解w
2024-09-13 21:36:56
1772
原创 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素
回答:这是一个查找的过程,直到查到或者查完为止。数组长度奇数正好可以取到中间;数组长度是偶数取到中间附近,差一点无所谓,主要是大概对半分开查找。这几道题之前做过,视频讲解也看过,但真正上手做是另一回事,有很多小细节需要考虑,需要明白每个地方为什么这样做,理解了之后,后续才有可能自己写对。不知道比较完大小后如何将平方的结果按顺序排好,放在哪里;问题所在:没有分清快慢指针的用途,判断条件写的有误。分不清该二分值还是下标,对数组奇数偶数不知道怎么处理。思考:为什么要用while?不会动态分配数组大小;
2024-09-11 21:53:44
294
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅