- 博客(25)
- 收藏
- 关注
原创 代码随想录八股训练营学习总结
经过40天的系统化训练,这次八股训练营给我带来的收获远超预期。它不仅帮助我构建了完整的知识框架,更重要的是解决了之前"死记硬背却记不住"的痛点。我把这段时间的学习内容整理成了详细的笔记,这些笔记将成为我未来面试复习的重要参考资料,相信在关键时刻能派上大用场。
2025-01-30 19:50:48
618
原创 代码随想录算法训练营第二十一天 | 二叉树众数、公共祖先
这道题目刷过的同学未必真正了解这里面回溯的过程,以及结果是如何一层一层传上去的。那么我给大家归纳如下三点求最小公共祖先,需要从底向上遍历,那么二叉树,只能通过后序遍历(即:回溯)实现从底向上的遍历方式。在回溯的过程中,必然要遍历整棵二叉树,即使已经找到结果了,依然要把其他节点遍历完,因为要使用递归函数的返回值(也就是代码中的left和right)做逻辑判断。要理解如果返回值left为空,right不为空为什么要返回right,为什么可以用返回right传给上一层结果。
2023-12-20 16:56:10
965
1
原创 代码随想录算法训练营第二十二天 | 搜索树添加、删除元素
利用好搜索树的特点这道题只需要搜索一条路径701.二叉搜索树中的插入操作因为存在多种插入方式,在其中找到最合适的就至关重要只要按照二叉搜索树的规则去遍历,遇到空节点就插入节点就可以了。例如插入元素10 ,需要找到末尾节点插入便可,一样的道理来插入元素15,插入元素0,插入元素6,需要调整二叉树的结构么?并不需要确定递归函数参数以及返回值参数就是根节点指针,以及要插入元素,这里递归函数要不要有返回值呢?
2023-12-20 16:31:27
844
1
原创 代码随想录算法训练营第十八天 | 前中后序构造二叉树
递归求深度的写法,我们在110.平衡二叉树 (opens new window)中详细的分析了深度应该怎么求,高度应该怎么求。递归中其实隐藏了回溯,在257. 二叉树的所有路径 (opens new window)中讲解了究竟哪里使用了回溯,哪里隐藏了回溯。层次遍历,在二叉树:层序遍历登场!深度讲解了二叉树层次遍历。所以本题涉及到的点,我们之前都讲解过,这些知识点需要同学们灵活运用,这样就举一反三了。112. 路径总和。
2023-12-17 15:20:06
954
1
原创 代码随想录算法训练营第十六天 | 二叉树的深度、节点个数
1、对递归理解进一步加深,后序理解透彻,前序理解一般,迭代没有理解2、对于完全二叉树,要充分理解其特性3、今天题目都需要二刷代码随想录。
2023-12-14 11:15:59
1097
1
原创 代码随想录算法训练营第十五天 | 二叉树遍历的三种方法
针对二叉树的问题,解题之前一定要想清楚究竟是前中后序遍历,还是层序遍历。二叉树解题的大忌就是自己稀里糊涂的过了(因为这道题相对简单),但是也不知道自己是怎么遍历的。这也是造成了二叉树的题目“一看就会,一写就废”的原因。针对翻转二叉树,我给出了一种递归,三种迭代(两种模拟深度优先遍历,一种层序遍历)的写法,都是之前我们讲过的写法,融汇贯通一下而已。
2023-12-13 18:50:33
1009
1
原创 代码随想录算法训练营第十四天 | 二叉树遍历的三种方法
刚刚我们说过了二叉树有两种存储方式顺序存储,和链式存储,顺序存储就是用数组来存,这个定义没啥可说的,我们来看看链式存储的二叉树节点的定义方式。int val;大家会发现二叉树的定义和链表是差不多的,相对于链表 ,二叉树的节点里多了一个指针, 有两个指针,指向左右孩子。这里要提醒大家要注意二叉树节点定义的书写方式。在现场面试的时候 面试官可能要求手写代码,所以数据结构的定义以及简单逻辑的代码一定要锻炼白纸写出来。
2023-12-12 16:01:03
1053
原创 代码随想录算法训练营第十二天 | 单调队列、大小顶堆
这一部分参考代码随想录。代码随想录今天题目比较难,见到了单调队列是怎么用的,以及小顶堆,因为完全不会就直接看答案了,所以做的很快,需要二刷。除此之外,还明白了写程序的一个原则,即尽可能只维护需要的数据。
2023-12-11 19:16:59
984
1
原创 代码随想录算法训练营第十一天 | 栈和队列、字符串结合
今天题目不算难,最后一个题我是先判断的数字,在这一块出现问题,判断不到位,判断起来比加减乘除还复杂。
2023-12-09 17:22:39
400
1
原创 代码随想录算法训练营第六天 | 哈希表、双指针plus
今天再一次见识到了双指针的妙用,双指针法能够降一重时间复杂度,和遍历一起用也是可以的。
2023-12-05 10:44:16
1181
1
原创 代码随想录算法训练营第五天 | 哈希表基础
总结一下,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。如果在做面试题目的时候遇到需要判断一个元素是否出现过的场景也应该第一时间想到哈希法!今天题目比较简单,主要回顾了哈希表的基础知识和简单的API。第一次知道数组本质也是哈希表(键:值),所以当数据量不大时,也可以使用数组,效率更高。
2023-12-04 15:52:29
1161
原创 代码随想录算法训练营第四天 | 双指针妙用、数学能力
这次题目总的来说不是很难,第一题需要注意顺序,第二题和第三题是对双指针的妙用,第四题是需要思路的,今天把之前进度补齐了,下个周继续加油!代码随想录。
2023-12-03 13:06:34
830
1
原创 代码随想录算法训练营第三天 | 双指针、滑动窗口
/ 单链表int val;// 节点上存储的元素// 指向下一个节点的指针ListNode(int x) : val(x), next(NULL) {} // 节点的构造函数也可以不写构造函数,C++默认生成一个构造函数。但是这个构造函数不会初始化任何成员变量,比如:所以如果不定义构造函数使用默认构造函数的话,在初始化的时候就不能直接给变量赋值!太久没复习链表了,以至于有些基础知识都已经忘了。在记起来知识点之后第一题和第二题就比较简单。
2023-12-02 16:22:19
1152
1
原创 代码随想录算法训练营第二天 | 双指针、滑动窗口
其实今天的题目不是很难,有序数组的平方是对双指针的一种妙用,说明昨天理解的不够到位;滑动窗口是今天新学到的,好好消化一下。旋转矩阵制一开始被唬到了,其实一般。今天效率有点低,明天加油!
2023-12-01 19:56:29
525
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅