- 博客(51)
- 收藏
- 关注
原创 力扣刷题DAY18(解决二叉树的各种问题)
本文探讨了二叉树问题的不同遍历方法及其应用场景。对于翻转二叉树(226题),可采用递归前序或后序遍历;对称二叉树判断需使用后序遍历以收集子树信息;计算完全二叉树节点数(222题)可采用递归后序或层序遍历;平衡二叉树检测则必须使用后序遍历来获取子树高度差。文章通过具体代码示例展示了不同遍历方式(前序、中序、后序、层次)的适用条件,重点分析了中序遍历不适用于翻转二叉树的原因,以及后序遍历在处理需要子树信息的二叉树问题时的必要性。
2025-05-28 14:02:30
311
原创 力扣刷题DAY17(二叉树+层序遍历)
本文探讨了二叉树的层序遍历及其变体应用。层序遍历采用队列实现,符合广度优先搜索(BFS)逻辑,时间复杂度O(n)。具体应用包括:1.标准层序遍历(102题),逐层输出节点值;2.右视图遍历(199题),记录每层最右节点;3.最大深度计算(104题),通过递归或层序遍历实现;4.最小深度计算(111题),遇到首个叶子节点即返回。所有方法空间复杂度均为O(n),适用于不同场景下的二叉树遍历需求。
2025-05-27 15:49:15
325
原创 力扣刷题DAY16(二叉树+迭代遍历)
本文介绍了二叉树的三种遍历方法(前序、中序、后序)的非递归实现。前序遍历采用中左右的顺序,使用栈处理节点时需注意右孩子先入栈;后序遍历通过调整前序顺序(中右左)再反转结果得到左右中的顺序;中序遍历需要先处理完左子树才能访问中间节点。三种方法时间复杂度均为O(n),空间复杂度O(n)。关键注意点包括空树判断、节点访问顺序以及栈的正确使用方式。每种遍历都给出了标准C++实现代码和复杂度分析。
2025-05-24 16:31:59
473
原创 力扣刷题DAY15(二叉树+递归遍历)
本文介绍了二叉树三种递归遍历的实现方法:前序、后序和中序遍历。递归遍历的核心是确定递归函数的参数、终止条件和单层逻辑。前序遍历顺序为"中左右",后序为"左右中",中序为"左中右"。关键注意事项是传递结果容器时必须使用引用(&),否则递归过程中会复制容器导致结果丢失。三种遍历方式的时间复杂度均为O(n),空间复杂度为O(n),因为递归调用会使用系统栈空间。文中提供了每种遍历的完整C++实现代码。
2025-05-24 14:51:37
311
原创 数学基础(贝叶斯、最小二乘法)
文章摘要:本文首先介绍了贝叶斯公式,随后详细探讨了最小二乘法的几何原理。通过两点确定一条直线的方法,将方程组改写为向量形式,并讨论了误差对解的影响。文章指出,最小二乘法通过最小化误差模长来估计最大似然,并解释了优化样本点到直线距离平方和的原因。此外,文章还提到了相关系数r的概念,用于衡量线性关系的优良度,并指出r的绝对值越接近1,表示线性关系越强。最后,文章说明了即使点的数量增加,最小二乘法仍可应用于拟合直线,且相关系数r本质上是两个向量夹角的余弦。
2025-05-21 14:09:06
140
原创 力扣刷题DAY14(二叉树+递归解决各种问题)
本文介绍了四个与二叉树相关的算法问题及其解决方案。首先,二叉树的最大深度通过递归计算左右子树的深度,时间复杂度为O(n)。其次,相同二叉树通过递归比较两个树的结构和节点值,时间复杂度为O(min(n,m))。第三,对称二叉树通过递归比较左右子树的对称性,时间复杂度为O(n)。最后,平衡二叉树通过递归计算子树高度并判断是否平衡,时间复杂度为O(n)。所有算法的空间复杂度均为O(n),最坏情况下递归栈空间为O(n)。
2025-05-20 20:47:15
250
原创 力扣刷题DAY12(动态规划-区间DP)
想一想,要计算 f[i][j],必须先把 f[i+1][⋅] 算出来,那么只有 i 从大到小枚举才能做到。而对于j来说,要计算 f[i][j],必须先把 f[⋅][j-1] 算出来,那么只有 j 从小到大枚举才能做到。此外,j在i右边,所以在第二层循环的时候,j从i+1开始。跟最长公共子序列的优化很相似,要保存一些特殊的值传递到下一层循环。对于一个子序列而言,如果它是回文子序列,并且长度大于 2,那么。回文子序列本质就是:该字符串与自己的逆序串求最长公共子序列。
2025-04-12 14:43:16
908
原创 机器学习01-支持向量机(SVM)(未完)
T是倒置,训练数据是n维,omega也是n维。划分二维的是一条直线,三维的是一个平面,大于三维就称为超平面。机器学习要做什么?通过训练数据,在这个线性模型的限定下把omega和b找出来。
2025-04-09 20:32:24
320
原创 跟着StatQuest学知识08-RNN与LSTM
不使用相同的反馈环连接,通过很久以前的事情和昨天的事情进行预测。当我们循环的次数越来越多的时候,这个巨大的数字会进入某些梯度,当我们循环的次数越来越多的时候,这个非常的数字会进入某些梯度,来对明天预测,一条用于长期记忆,另一条用于短期记忆。为什么通过LSTM能解决梯度爆炸和梯度消失的问题?右边模块:将短期记忆和输入结合(权重×数值),左边模块:确定这个潜在记忆中的权重。,导致寻找最佳参数困难。,导致寻找最佳参数困难。,会出现梯度爆炸问题。,会出现梯度消失问题。
2025-03-29 14:51:47
719
原创 基于OpenCV+MediaPipe手部追踪
开源计算机视觉(Library)图像/视频的(读取、裁剪、滤波、色彩转换等)特征检测(边缘、角点等)摄像头标定、目标跟踪等负责视频流的捕获(图像格式转换(最终结果的渲染显示(cv2.imshow:由Google开发的提供预训练的(如手部关键点、人脸网格、姿态估计等)专注于实时感知任务(低延迟、移动端优化)调用模型实现输出关键点坐标,并通过mpDraw可视化。
2025-03-28 19:55:08
1539
原创 力扣刷题DAY6(滑动窗口/中等+栈/简单、中等)
(用 cnt[c]-- 和 cnt[c]++ 直接调整窗口,避免窗口每次移动都重新统计字符频率。
2025-03-06 15:47:12
502
原创 库学习03-os库(持续更新)
os.walk(source_path) 会生成一个遍历器 walk,它用于循环遍历 source_path 目录及其所有子目录中的所有文件。os.path.join函数是 Python 标准库中 os 模块提供的一个非常有用的函数,用来。它的作用是将多个路径部分拼接成一个完整的路径,且能够根据不同操作系统自动使用正确的路径分隔符。os.walk() 是 Python 的一个标准库函数,用于。它会遍历指定路径(source_path)及其所有子目录,并生成一个包含。
2025-02-14 11:51:28
344
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人