LeedCode做题笔记
记录些从0开始刷题的笔记和思考
CHENxiaoni_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
21.合并两个有序链表
1、创建新的有序链表,使用dummy,而不使用ListNode* head = new ListNode的原因是可以省去析构。在栈上创建而不是在堆上创建。2、swap的难点在于交换的是变量的值还是变量的地址。我认为可以理解为将两个变量的名称互换了,这里的意思是值小的叫list1。3、最后如果list1先结束就把list2剩余的接上,反之亦然。原创 2023-07-16 15:01:48 · 381 阅读 · 0 评论 -
863.二叉树中所有距离为K的节点
本题和二叉树关系也不大,关键是二叉树如何转化为无向图,与无向图的广度有限遍历的应用。2.进行广度优先遍历,将深度为2的所有元素push到ans中。1.将二叉树转化为无向图。原创 2023-07-12 14:00:35 · 286 阅读 · 0 评论 -
823. 带因子的二叉树
arr[i]作为根节点A, arr[j]作为其中的一个叶子节点B,arr[i] / arr[j]作为另一个叶子节点C。该根节点可以组成的二叉树的个数为B和C的子树的乘积。最后 遍历哈希表中每个根节点可以组成的二叉树的和就是最终答案。本题的主要思路,将数据从小到大依次作为二叉树的节点,算出每个数据作为节点的二叉树个数。有用题目中说明,数据量可能过大,所以除以kMod保证结果始终在int的范围内。本题虽是二叉树问题但和二叉树没太大关系,我认为关键是对哈希表的应用。原创 2023-07-11 15:39:22 · 147 阅读 · 0 评论 -
297. 二叉树的序列化与反序列化
二叉树存储方式是随机存储,在发从以二叉树存储的数据信号时不方便,通常将其按一定方式转为序列存储,然后接收放将序列再次反序列化以二叉树方式存储。标准库:ostringstream istringstream stoi(将字符转换为数值)数据流存储时一个字符中间隔一个空格,在数据流读取时自动隔一个空格读取。二叉树的序列化与反序列化,即二叉树的遍历与构造。原创 2023-05-30 16:15:47 · 116 阅读 · 0 评论 -
530. 二叉搜索树的最小绝对差
搜索二叉树通过中序遍历得到的元素是有序的,一次从小到大。原创 2023-05-31 16:07:48 · 107 阅读 · 0 评论 -
239.滑动窗口最大值
这里erase操作会将与该值相等的所有元素删除,但我们希望只删除第一个。multiset中equal_range是使用二分法查找的。使用单调队列,队列从头到尾异地递减,新加入的元素如果大于队尾元素则将队尾元素删除,直至队列中没有比新加进来的元素大。multiset 的使用,meltiset中可以包含重复重复的值,并且插入进去后直接排好序。原创 2023-06-07 16:42:43 · 116 阅读 · 0 评论 -
687. 最长同值路径
1、二叉树的路径,被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次。该路径 至少包含一个 节点,且不一定经过根节点。1、本题我在思考是觉得麻烦的地方在需要将所有候选路径的结果存在vector中,然后还需排序取最大值,而花花酱有个非常好的处理方式就是通过引用实时跟新最大值,这个方法值得学习。该程序设计非常巧妙,将递归方法运用的炉火纯青。原创 2023-05-29 21:42:45 · 106 阅读 · 0 评论 -
98. 验证二叉搜索树
自己写的适合也考虑到用中序遍历,但是对中序遍历的方式还不带熟悉,没有引入prev_这个变量,引入prev_后程序变得简洁了许多。搜索二叉树性质,中序遍历是元素是有序的且是由小到大。原创 2023-05-30 14:51:28 · 117 阅读 · 0 评论 -
124. 二叉树中的最大路径和
1、二叉树的路径,被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次。该路径 至少包含一个 节点,且不一定经过根节点。2、当子树中最大路径是负数时,就为0。1、本题和687. 最长同值路径相似,或者说几乎一样。原创 2023-05-29 22:13:55 · 95 阅读 · 0 评论 -
480.滑动窗口中位数
static_cast,一般来说,编译器隐式执行的任何类型转换都可以由static_cast显式完成。在转前一定确定好目标类型数据。1、multiset的使用。2、迭代器相关知识。原创 2023-06-07 22:10:04 · 190 阅读 · 0 评论 -
1145. 二叉树着色游戏
1、树的遍历。原创 2023-05-27 15:02:21 · 137 阅读 · 0 评论 -
1110. 删点成林
对于空间和时间开销的话递归方法要差点,递归次数受栈大小限制,函数调用和压栈出栈都需要时间。而循环就没什么空间和时间上额外的开销。1、递归的使用条件,某个大问题可以分化为多个同样的小问题(最经典的使用场景就是二叉树的遍历)在二叉树中会经常根据不同的需求用到递归的操作。看其他网友的回答,递归更易读,循环比较复杂,我觉得也看情况吧。2、递归的返回条件,返回条件可以有多个,按希望得到的结果设置条件。有个简单的道理,太复杂的用递归,要不循环不但程序成而且难看懂。比较小的问题就用循环,不但代码简单而且也容易看懂。原创 2023-05-27 17:05:42 · 110 阅读 · 0 评论 -
652、寻找重复的子树
将二叉树的所有子树都进行序列化存入希哈表中,将重复次数超过2的子序列返回。重要过程:(1)将所有子树的元素序列化并存储。二叉树的遍历,比较复杂的遍历形式。原创 2023-06-05 14:19:19 · 200 阅读 · 0 评论 -
1305 两棵二叉搜索树中的所有元素
1、二叉搜索树的性质,二叉搜索树又称二叉排序数或二叉查找树。一棵二叉搜索树可以为空,如果不为空,应满足一下性质:(1)非空左子树的所有键值小于其根节点的键值。(2)非空右子树的所有键值大于其根节点的键值。(3)左右子树都是二叉搜索树。原创 2023-05-17 22:43:40 · 132 阅读 · 0 评论 -
leedcode板块声明
leedcode 板块的的内容多来自up主花花酱的教学视频,对up主视频的总结及自己的思考。原创 2023-05-12 15:29:48 · 111 阅读 · 0 评论 -
addTwoNumbers
1、链表的创建与遍历。2、高精度加法的模拟。(高精度加法通常无法使用int或者double表示,选择使用链表或者字符串表示)原创 2023-05-12 15:25:58 · 124 阅读 · 0 评论
分享