- 博客(5)
- 收藏
- 关注
原创 day 6| LCR.022.环形链表 || |242.有效的字母异位词 |349.两个数组的交集 | 202.快乐数
判断是否为快乐数,如果sum是1,则是快乐数,如果不是1,则判断sum是否重复出现过,而要判断一个元素在集合中是否出现,要用到hash结构,hash保存每一次的sum,然后寻找是否出现,如果出现,则不是快乐数,否则就插入hash结构中,进行下一轮循环。其实,符合条件的c就是数组中的元素,通过迭代器返回其下标,而且迭代器中c与c之前的元素和数组内的元素是同步的,迭代器中c的下标和数组中元素的下标是一致的。为什么fast 走两个节点,slow走一个节点,有环的话,一定会在环内相遇呢,而不是永远的错开呢。
2024-11-08 22:17:17
1002
原创 day 4| 24.两两交换链表结点|19.删除链表倒数第n个节点|02.07链表相交
链接:https://leetcode.cn/problems/intersection-of-two-linked-lists-lcci/solutions/1190240/mian-shi-ti-0207-lian-biao-xiang-jiao-sh-b8hn/定义快指针和慢指针同时指向虚拟头节点(删除操作必备虚拟头),让快指针先移动n+1步,慢指针不动,那么快指针和慢指针就相差了n+1个位置,然后同时向后移动快慢指针,当快指针指向空的时候,慢指针指向被删元素的前驱。那么,为什么要用到虚拟头节点?
2024-10-21 18:24:15
1209
原创 day3|203.移除链表元素|707.设计链表|206.反转链表
解释ListNode(int x) : val(x), next(nullptr) {}:可直接初始化变量:new ListNode(2),表示创建了一个ListNode类型的结点,数据域为2,指针域为空。ListNode *p = new ListNode(2),表示创建了一个ListNode类型的指针,指向新建的结点。本来是课上学过的知识,想要自己解决,可是真正上手的时候才发现寸步难行,说明对链表的理解还是不够,比如要构造一个函数,以便于初始化变量,不太理解。核心在于将指针反转。
2024-10-15 22:35:15
1078
原创 Day2|209.长度最小的子数组|螺旋矩阵|区间和
https://leetcode.cn/problems/minimum-size-subarray-sum/description/这里是卡哥原文链接,讲的清晰明了: https://www.programmercarl.com/0209.%E9%95%BF%E5%BA%A6%E6%9C%80%E5%B0%8F%E7%9A%84%E5%AD%90%E6%95%B0%E7%BB%84.html#%E6%80%9D%E8%B7%AF看了示例默写的代码:进行判断是否赋值,if(sum > target)
2024-10-08 23:10:11
1024
原创 Day1|数组理论基础|704.二分查找
现在是2024.10.2,23点,刚加入训练营,以前从来没有这样刷过题,感觉比较生疏,效率太低了,不过我觉得还是非常有效的,今天能做多少做多少,相信明天的自己比今天的更好!定好左右边界(左闭右开或者左闭右闭),计算数组中间值mid,用mid表示的数组元素与目标值target比较,根据二者的大小关系不断缩小比较的边界。思路:先要搞清楚快慢指针的作用,快指针要获取新数组元素,并且要赋值给慢指针,相当于种花,而慢指针指的是新数组下标的位置,相当于花盆。这里涉及到一个快速排序,先去补一下,然后再看。
2024-10-04 09:01:04
831
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅