
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文总结了字符串反转相关算法题的解题思路。对于344题,采用双指针法实现原地反转字符串;541题通过分组处理,每2k个字符翻转前k个字符,处理边界情况;54题则是将数字字符替换为"number"。重点分析了541题的优化解法,通过min函数和循环步长2k简化了边界条件处理。解题时需注意字符串不可变特性,常需转换为列表操作后再转回字符串。
摘要: 本文介绍了两个单调栈应用的经典算法题:接雨水和柱状图最大矩形。接雨水问题通过维护递减栈,遇到更高柱子时计算凹槽储水量,公式为宽度 × (左右边界较小值 - 底部高度)。柱状图问题则用递增栈,找到左右第一个更矮的柱子确定矩形边界,面积计算为高度 × (右边界 - 左边界 - 1)。两者均通过栈动态处理下标,时间复杂度O(n)。核心在于利用单调性高效定位边界,转化为几何问题求解。
摘要:本文总结二叉树递归解题方法,重点分析4道典型题目。翻转二叉树(226)采用前序遍历交换左右子树;对称二叉树(101)必须后序遍历比较内外侧节点;最大深度(104)通过后序遍历求高度;最小深度(111)需特殊处理单边子树情况。核心在于理解不同遍历顺序(前序/后序)对解题的影响,以及正确处理空节点和递归终止条件。递归解法需明确参数、终止条件和单层逻辑三个要素。
本文总结了二叉搜索树相关操作的实现方法: 235题:二叉搜索树的最近公共祖先(LCA),采用递归方法,通过比较节点值确定搜索方向,比普通二叉树解法更高效。 701题:二叉搜索树插入操作,重点在于找到正确插入位置(叶子节点),并注意递归返回时要重新连接子树。 450题:删除节点操作,处理五种情况:未找到节点、删除叶子节点、删除只有左/右子树的节点、删除同时有左右子树的节点(需处理子树合并)。 所有操
本文分享了三个二叉树相关算法题的解题思路: 530题:通过中序遍历二叉搜索树得到有序数组,然后计算相邻元素差值的最小值。 501题:遍历二叉搜索树得到数组,使用字典统计元素频率,返回出现次数最多的数字。 236题:采用后序遍历查找p和q节点的最近公共祖先,通过递归判断左右子树的结果来确定祖先节点。 这三个解法都利用了二叉树的遍历特性,分别通过前序、中序和后序遍历来解决问题,体现了树结构在算法中的典
摘要:本文介绍了单调栈的概念及其在解决LeetCode问题中的应用。单调栈分为递增和递减两种,用于维护元素的单调性。文章通过三个例题详细解析了单调栈的使用方法:739题用单调递减栈计算每日温度的下一个更高温度天数;496题通过哈希表和单调栈找到nums1元素在nums2中的下一个更大值;503题则利用单调栈处理循环数组,找到每个元素的下一个更大值。这些问题的解法都遵循相似的模式:维护单调栈结构,遍
本文总结了力扣三道回溯算法题的解题思路:93题复原IP地址要求将字符串分割为4段0-255的数字,避免前导零,通过回溯法递归验证每段有效性;78题子集需要返回所有可能的子集组合,通过记录路径中间状态实现;90题子集II在78题基础上增加了去重要求,通过排序数组和路径检查来避免重复子集。三题都采用回溯框架,通过递归、剪枝和回溯操作遍历所有可能性,体现了回溯算法在组合问题中的典型应用模式。
本文总结了四道二叉树相关算法题的解题思路与实现方法:1. 平衡二叉树判断(110题):通过后序遍历递归计算子树高度差,若差值>1则返回-1;2. 二叉树所有路径(257题):前序遍历+回溯,记录根到叶子的路径并在返回时删除当前节点;3. 左叶子之和(404题):递归判断左子节点是否为叶子节点并累加其值;4. 完全二叉树节点计数(222题):直接前序遍历返回节点数组计算长度。四题均采用递归解法
本文系统介绍了二叉树的基础理论与遍历方法。首先阐述了二叉树的定义和分类(满二叉树、完全二叉树、二叉搜索树等),然后详细讲解了两种存储方式(链式和顺序存储)。重点介绍了递归和非递归的深度优先遍历(前序、中序、后序)实现方法,以及层序遍历的BFS实现。通过10道力扣题目实践了这些遍历方法,包括层序遍历及其变种(右视图、平均值、最大/小深度等)。文章采用Python代码示例,强调了对递归过程的理解和队列
本文记录了四道LeetCode哈希与双指针题目的解题过程。454题通过哈希表存储两数之和及其出现次数;383题使用数组统计字符频率;15题采用排序+双指针法处理三数之和,注意去重逻辑;18题在三数之和基础上增加循环层数解决四数之和问题。每道题都详细记录了思路演变、代码实现和调试过程中遇到的错误(如字典初始化、变量作用域、去重条件等),最终均成功提交。解题过程体现了从无思路到逐步优化、从伪代码到最终







