- 博客(8)
- 收藏
- 关注
原创 Leetcode 501.二叉搜索树中的众数
2. 可以定义两个int类型的变量,一个记录遍历一个节点时的频率,一个记录遍历全部节点后的最大频率。4. 当访问一个节点的频率大于最大频率时,更新最大频率,将之前的结果清空,并将该节点的值存入结果中。1. 对于二叉搜索树一般考虑使用中序遍历,因为这样得到的数组结果是有序的。3. 当访问一个节点时的频率等于最大频率时,将该节点的值存入结果中。1. 如何更新最大频率需要考虑。
2025-03-13 15:46:43
151
原创 Leetcode 739. 每日温度
3.3 当遍历的元素大于栈顶元素,将遍历元素的下标和栈顶元素相减得到相对位置,将相对位置存入结果中。同时将将栈顶元素弹出,将当前遍历的元素压入栈中。1. 对于存放结果的向量,需要先初始化。1. 因为是在一个一维数组,求任一个元素右边第一个比自己大的元素,可以考虑使用单调栈(从栈头到栈底是递增的)。3.2 当遍历的元素等于栈顶元素,将遍历的元素压入栈中。(因为求的是大于的数)3.1 当遍历的元素小于栈顶元素,将遍历的元素压入栈中。2. 因为结果是需要相对位置,所以栈里存放的是元素下标。
2025-03-13 14:26:03
300
原创 Leetcode 700.二叉搜索树中的搜索
2. 由于我们在这个二叉搜索树中,是遍历一条符合条件的路径,因此需要返回值值。(如果是遍历全部路径,则返回值设置为void)。因此我们需要一个临时变量来存放需要的返回值。1. 确定终止条件,当根节点为NULL或者根节点已经满足条件,直接返回根节点。2. 没有设置临时变量存储结果,导致逻辑混乱。3. 利用二叉搜索树的性质确定迭代的方向。1. 终止条件不知道如何确定。
2025-03-08 23:09:39
185
原创 Leetcode 654.最大二叉树
因为每次递归都需要构建两个新的向量,造成资源浪费。可以在形参中加入两个int类型的数值,记录位置区间大小。1. 构造二叉树一般是使用前序遍历(因为前序遍历是中左右,在递归的过程中逐渐向下延申。3. 将最大值赋值给根节点(中),根据最大值的下标划分向量为左子树区间和右子树区间。2. 找出向量中的最大元素,记录最大值和对应下标。4. 将左子树区间和右子树区间作为参数进行递归。
2025-03-08 21:45:20
233
原创 Leetcode 106.从中序与后序遍历序列构造二叉树
代码随想录1. 先根据后序遍历向量,可以确定中间节点。(原因:后序遍历时左右中,所以后续遍历最后一个元素一定是中间节点)2. 根据得到的中间节点将中序遍历可以分为左子树区间和右子树区间。3. 由于不管是中序遍历还是后续遍历,左子树区间的元素个数都是一样的。所以我们可以根据第2步得到的左子树区间的大小,来分割后续遍历的左子数区间。同时,后续遍历中的右子树区间就是全部区间减去左子树区间和最后一个节点(中间节点)4. 递归1. 在刚开始实现时,不知道如何确定终止条件。2. 对于如何分割中序遍历和后续遍历的区间 不
2025-03-08 17:12:07
186
原创 Leetcode 刷题感悟
在看到一个题目时,可以先把可以满足测试案列的正确流程一步一步思考,这样就先形成了一个粗糙的逻辑思路。后面在根据提示等信息,考虑特殊情况。
2025-03-07 22:36:59
180
原创 OOP与GP的对比
2. OOP是将数据(成员变量)和处理数据的函数(成员方法)封装为一个类。1. 泛型编程的实现是将数据和处理数据的函数分开写。2. 可以写出处理不同数据类型的通用代码。1. OOP的具体实现方式是类。3. GP的实现方式是模板。
2025-03-07 14:00:40
132
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人