- 博客(59)
- 收藏
- 关注
原创 代码随想录一刷总结
作者回顾了参加算法训练营的两个月经历,从算法小白成长为能坚持每日打卡、撰写技术博客的编程学习者。通过系统学习二分查找、动态规划等算法专题,不仅提升了编程能力,还掌握了C++语言。尽管后期学业繁忙仍坚持深夜打卡,作者认为训练营培养了自律习惯,但博客质量仍有提升空间。虽然训练营结束,作者表示将继续复习巩固,并感谢课程提供的优质学习资源。(149字)
2026-04-05 15:16:40
454
原创 代码随想录算法训练营第六十六天|97. 小明逛公园127. 骑士的攻击
本文包含两个算法问题的解题思路:1.多源最短路径问题使用Floyd算法,通过动态规划构建距离矩阵,空间优化后采用二维数组存储节点间最短距离。2.骑士移动问题采用A*算法,结合启发式函数(当前距离+欧拉距离估计)优化搜索方向,使用优先级队列实现高效路径查找。作者总结表示完成了一轮算法练习,计划调整节奏保持高效学习。
2026-04-04 00:29:01
509
原创 代码随想录算法训练营倒数第二天!|Bellman_ford 队列优化算法、判断负权回路、单源有限最短路
本文介绍了三种基于Bellman-Ford算法的优化思路:1) SPFA算法通过队列记录有效节点,避免无效松弛;2) 通过额外松弛判断负权回路;3) 使用minDist_copy数组实现单源有限最短路。文章包含各算法的C++实现代码,展示了如何优化传统Bellman-Ford算法的冗余操作。作者反思了算法优化的重要性,认识到之前存在许多无效更新,并强调坚持学习的重要性。这些优化方法能有效提高最短路径问题的求解效率。
2026-04-02 23:35:33
389
原创 代码随想录算法训练营第六十四天|dijkstra(堆优化版)、Bellman_ford 算法
本文介绍了两种单源最短路径算法:堆优化Dijkstra和Bellman-Ford。堆优化Dijkstra通过优先队列选择最近节点,避免两层循环,使用邻接表存储图结构。Bellman-Ford算法可处理负权边,通过n-1次松弛操作求最短路径,但作者对其原理仍存疑惑。两种算法均实现了从节点1到n的最短路径计算,并处理了不连通情况。作者在总结中表示对Bellman-Ford算法的理解仍需加强,但坚持完成了代码实现。
2026-04-01 23:35:39
224
原创 代码随想录算法训练营第六十三天|拓扑排序、dijkstra(朴素版)
本文介绍了两个图论算法:拓扑排序和Dijkstra最短路径算法。拓扑排序用于解决线性依赖问题,通过维护入度数组和队列实现,同时能检测图中是否存在环。Dijkstra算法用于求解带权有向图的最短路径,通过维护距离数组和访问标记数组,采用贪心策略逐步确定最短路径。作者分享了两道题的代码实现,并总结学习心得,指出在理解Prim算法后更容易掌握Dijkstra算法,且当天两道题目均一次通过无需调试。
2026-03-31 23:14:38
230
原创 代码随想录算法训练营第六十二天|prim算法、kruskal算法
本文介绍了两种最小生成树算法:Prim算法和Kruskal算法。Prim算法通过维护节点集合,每次选择距离生成树最近的节点加入,并更新相邻节点的距离。Kruskal算法则维护边集合,按权值排序后依次选择不形成环的边加入。两种算法都体现了贪心思想,Prim适用于稠密图,Kruskal更适合稀疏图。文章提供了两种算法的带注释和不带注释的C++实现代码,并指出Prim算法的原理证明尚不完全清楚。最后强调距离考试还有5天。
2026-03-30 23:36:00
436
原创 代码随想录算法训练营第六十天|多余的边?从基础到进阶!
本文探讨了两道关于图中多余边的算法问题。第一题处理无向图中形成环的多余边,使用并查集检测已连接的节点对。第二题扩展至有向图,考虑三种情况:入度为2的节点需删除一条边、特定边必须删除、或使用类似无向图的方法检测环。作者通过并查集实现了这两种情况的判断,并分享了代码实现中的思考过程。最后提到题目难度较大,需要合理安排学习时间。两题都展示了并查集在图论问题中的灵活应用。
2026-03-28 23:29:38
414
原创 代码随想录算法训练营第五十九天|并查集理论基础、107. 寻找存在的路径
本文介绍了并查集的基本原理和实现方法。并查集主要用于管理元素的分组情况,核心功能包括合并集合和查询元素是否同属一个集合。通过father数组记录元素间的连通关系,初始化时每个元素自成一集。关键操作find函数采用路径压缩优化,将查找路径上的节点直接指向根节点以提高效率。文章提供了完整的C++实现模板,包括初始化、查找、判断连通性和合并操作。最后以一道路径存在性判断问题为例,演示了并查集的实际应用,通过比较两个元素的根节点来判断连通性。理解并查集的核心在于掌握find函数的递归实现和路径压缩机制。
2026-03-27 23:02:34
353
原创 代码随想录算法训练营第五十八天|110. 字符串迁移、105. 有向图的完全联通、106. 海岸线计算
本文摘要:作者分享了解决三道算法题的思路和代码实现。第一题"字符串迁移"采用BFS寻找最短路径,通过字符替换判断字符串连通性;第二题"有向图的完全联通"使用DFS遍历图结构,检查所有节点是否可达;第三题"海岸线计算"通过直接遍历二维数组统计陆地与水域的边界。作者总结了学习心得,表示对深度优先搜索有了更深理解,并期待后续学习并查集算法。代码实现中特别注意了变量命名、边界条件处理和无向图标记等细节。
2026-03-26 23:39:14
707
原创 代码随想录算法训练营第五十七天|孤岛的总面积、沉没孤岛、水流问题、建造最大岛屿
本文介绍了四种岛屿问题的算法思路及实现代码:1)孤岛面积计算,通过DFS将边缘陆地置零后统计剩余陆地;2)沉没孤岛问题,标记边缘陆地后转换状态;3)水流问题,逆向DFS标记可流通区域;4)建造最大岛屿,先标记各岛屿面积再遍历0点计算最大连接面积。作者指出这些题目具有挑战性,特别是最后一题需要理清变量作用和函数逻辑,建议通过复盘加深理解。所有解法都采用DFS遍历和状态标记的核心思想。
2026-03-25 23:09:00
206
原创 代码随想录算法训练营第五十六天|99. 岛屿数量 深搜 广搜、100.岛屿的最大面积
本文介绍了解决岛屿问题的两种算法思路:深度优先搜索(DFS)和广度优先搜索(BFS)。对于岛屿数量问题,通过遍历网格,遇到未访问的陆地时计数器加一并标记所有相连陆地。对于岛屿最大面积问题,则在DFS过程中统计每个岛屿的面积并记录最大值。两种方法都强调及时标记已访问节点的重要性,BFS还需注意入队时立即标记以避免重复。作者通过实践加深了对算法模板的理解,认为这类题目适合作为模板练习。代码实现展示了完整的输入处理、遍历逻辑和结果输出过程。
2026-03-24 23:30:28
307
原创 代码随想录算法训练营第五十五天|图论理论基础、深搜理论基础、98. 所有可达路径、广搜理论基础
本文介绍了图论基础及搜索算法理论。主要内容包括:1)图的两种表示方法:邻接矩阵(适合稠密图)和邻接表(适合稀疏图)的优缺点;2)深度优先搜索(DFS)的实现框架与三部曲,通过可达路径例题展示了具体应用;3)广度优先搜索(BFS)的模板代码,强调其适合解决最短路径问题。文章指出DFS与BFS各有适用场景,理解图表示方法是后续解题的基础,并分享了学习心得与继续努力的决心。
2026-03-23 23:39:20
605
原创 代码随想录算法训练营第五十三天|42. 接雨水 、84.柱状图中最大的矩形
本文介绍了两个单调栈算法问题:接雨水和柱状图最大矩形。接雨水问题使用单调递减栈,通过计算凹槽面积累加雨水总量;柱状图问题使用单调递增栈,寻找每个柱子左右边界计算最大矩形面积。两个问题都需要处理三种情况(当前元素小于/等于/大于栈顶元素),并在数组首尾添加哨兵值避免边界错误。作者强调这两个困难题目需要反复理解,建议通过画图或AI模拟推导来加深理解。代码实现展示了两种问题的单调栈解法,并指出虽然题目数量少但逻辑复杂,需要经常复习巩固。
2026-03-22 00:33:33
521
原创 代码随想录算法训练营第五十二天|739. 每日温度、496.下一个更大元素 I、503.下一个更大元素II
本文总结了使用单调栈解决三个典型问题的思路:739题通过单调栈记录温度下标,寻找右边第一个更高温度;496题结合哈希表在nums2中查找nums1元素的下一个更大值;503题处理循环数组时采用取模方法。三个问题都利用单调栈的空间换时间特性,时间复杂度均为O(n)。核心思路是维护递增栈,比较当前元素与栈顶元素,通过出栈操作更新结果数组。作者通过实践掌握了单调栈的应用技巧,能够独立完成代码实现。
2026-03-20 23:38:39
276
原创 代码随想录算法训练营第五十一天|动规终章!647. 回文子串 、516.最长回文子序列
本文总结了回文子串问题的两种动态规划解法。647题采用布尔型dp[i][j]表示子串[i,j]是否为回文,通过判断字符相等和区间长度来处理三种情况。516题求最长回文子序列,定义dp[i][j]为区间长度,处理字符相等和不等的两种情况。两题均采用从下往上的遍历顺序。作者反思动态规划的学习需要沉淀领悟,虽然系列学习结束但仍需继续努力。关键点在于:1)合理定义dp数组;2)正确处理状态转移;3)注意遍历顺序。动态规划的核心在于将问题分解为可重复利用的子问题。
2026-03-19 23:12:58
663
原创 代码随想录算法训练营第五十天|115.不同的子序列 、583. 两个字符串的删除操作 、72. 编辑距离
本文总结了三个字符串动态规划问题的解法。115题使用二维DP数组统计s中包含t的子序列个数,注意初始化条件和整数溢出问题;583题通过DP计算使两个字符串相等所需的最少删除操作次数,考虑三种删除情况;72题在583基础上增加替换操作,综合处理增删改三种编辑操作。作者指出第一题最具挑战性,并计划复习KMP算法。这些题目展示了动态规划在字符串处理中的典型应用,通过逐步分析递推关系和边界条件,可以有效解决复杂问题。
2026-03-18 23:17:57
582
原创 代码随想录算法训练营第四十九天|1143.最长公共子序列、1035.不相交的线 、53. 最大子序和 、392.判断子序列
本文总结了4道动态规划问题的解题思路和代码实现:1. 1143最长公共子序列:定义dp[i][j]为text1[0,i-1]和text2[0,j-1]的最长公共子序列长度,通过比较字符进行状态转移;2. 1035不相交的线:转化为最长公共子序列问题;3. 53最大子数组和:dp[i]表示以nums[i]结尾的最大子数组和,需遍历dp取最大值;4. 392判断子序列:类似公共子序列问题,最后比较dp值与子序列长度。作者指出子序列和子数组问题的dp定义差异,并强调模型转化能力的重要性。
2026-03-17 22:53:20
403
原创 代码随想录算法训练营第四十八天| 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
本文总结了三个子序列相关算法题的解题思路。300题采用动态规划,dp[i]表示以nums[i]结尾的最长递增子序列长度;674题相对简单,只需考虑连续递增情况;718题较难,需用二维dp数组处理两个数组的最长公共子数组。关键在于理解dp数组的定义和状态转移方程。通过练习加深了对动态规划处理子序列问题的理解,特别是718题的二维dp设计需要重点掌握。
2026-03-16 22:43:45
288
原创 代码随想录算法训练营第四十六天|188.买卖股票的最佳时机IV 、309.最佳买卖股票时机含冷冻期 、714.买卖股票的最佳时机含手续费
本文总结了股票买卖问题的三种变体解法。对于最多k次交易的问题,使用二维动态规划,将状态扩展为2k+1个,奇数状态表示买入,偶数表示卖出。含冷冻期问题需要细分四种状态:持有股票、保持卖出、当天卖出和冷冻期,状态转移时需考虑冷冻期限制。含手续费问题则只需在卖出时扣除手续费。文章指出冷冻期问题状态划分最具挑战性,需要仔细验证状态转移的正确性。通过动态规划的状态机思想,这三种变体问题都能得到有效解决。
2026-03-14 23:35:39
570
原创 代码随想录算法训练营第四十五天|121. 买卖股票的最佳时机 、122.买卖股票的最佳时机II 、123.买卖股票的最佳时机III
摘要:本文总结了买卖股票系列问题的动态规划解法。121题使用二维dp数组,分别记录持有/不持有股票的状态;122题允许多次交易,只需修改买入时的状态转移公式;123题则扩展为最多两次交易,需定义5种状态。文中提供了完整代码实现,包括常规解法和空间优化的滚动数组版本,并指出123题的难点在于状态定义和转移逻辑的复杂性。作者建议通过深入理解dp数组含义来避免调试困难。
2026-03-13 23:22:20
1074
原创 斑马问题|离散数学|爱因斯坦的谜题你能解开吗?
摘要:这是一道经典的逻辑推理题,通过12个线索确定五所房子中居民的特征。解题关键步骤包括:1)根据挪威人住1号房且相邻2号房为蓝色,确定1号房为黄色;2)排除颜色分配的矛盾分支;3)最终确定挪威人喝矿泉水,日本人养斑马。解题过程需要逐步排除矛盾,验证各种可能性,最终得出唯一合理的答案。
2026-03-12 23:44:25
877
原创 代码随想录算法训练营第四十四天|打家劫舍问题大合集!
本文总结了打家劫舍问题的三种变体解法:1)线性排列房屋的动态规划解法,通过状态转移方程dp[i]=max(dp[i-2]+nums[i],dp[i-1])计算最大收益;2)环形排列房屋的解法,通过分解为不偷首尾两种情况取最大值;3)二叉树房屋的后序遍历解法,每个节点返回[不偷,偷]两种状态的最大值。三种解法都采用动态规划思想,通过分解子问题逐步求解,时间复杂度均为O(n)。作者认为相比背包问题,这类问题相对容易理解。
2026-03-12 23:16:42
474
原创 代码随想录算法训练营第四十三天|322. 零钱兑换、279.完全平方数、139.单词拆分、多重背包
本文总结了4道背包问题的解题思路:1.零钱兑换(完全背包最小次数)使用动态规划,dp[j]表示金额j的最小硬币数,注意处理INT_MAX溢出;2.完全平方数(特殊完全背包)物品为平方数,终止条件为i*i≤n;3.单词拆分(顺序相关背包)需按排列顺序处理,结合哈希表查询;4.携带矿石资源(多重背包)通过三重循环模拟01背包。作者反思了多重背包与01背包的遍历差异,并强调需要巩固背包问题分类知识,避免遗忘基础算法。代码均采用自底向上的动态规划解法。
2026-03-11 23:43:18
395
原创 代码随想录算法训练营第四十二天|52. 携带研究材料、518. 零钱兑换 II、377. 组合总和 Ⅳ、57. 爬楼梯(进阶)
本文总结了完全背包问题的解题思路,重点分析了与01背包的区别(物品可重复使用)以及遍历顺序的影响。通过4道例题(携带研究材料、零钱兑换II、组合总和IV、爬楼梯进阶)展示了完全背包的应用,强调遍历顺序对排列/组合结果的影响及整数溢出问题的处理。代码实现上,使用一维DP数组并注意初始化,外层循环物品时为组合,外层循环背包时为排列。作者提醒要理解动态规划五部曲,避免直接套模板,并注意打印DP数组来加深理解。
2026-03-10 23:35:52
399
原创 代码随想录算法训练营第四十一天|1049. 最后一块石头的重量 II、494. 目标和、474.一和零
本文总结了三道动态规划问题的解题思路和代码实现。1049题通过将石头分成两堆使差值最小化,转化为背包问题;494题通过数学推导将目标和问题转化为背包装满方法数问题;474题则将字符串视为物品,m和n作为二维背包容量。三题都运用了动态规划思想,但各有特点:1049注重价值与重量相同的背包问题,494侧重组合计数,474则处理二维约束条件。作者提到这些题目难度较大,需要进一步理解推导过程,尤其在学习压力下更需专注思考。三题的共同点在于巧妙地将原问题转化为背包问题变体,展现了动态规划的灵活应用。
2026-03-09 23:29:07
423
1
原创 代码随想录算法训练营第三十九天| 01背包问题 二维、一维、416. 分割等和子集
今天的背包入门对于我之前完全没接触过还是有一些理解难度的,还是要自己去举例,自己去想一想怎么办,不能马马虎虎过去,加油!
2026-03-08 00:59:22
541
原创 代码随想录算法训练营第三十八天| 62.不同路径、63. 不同路径 II、343.整数拆分、96.不同的二叉搜索树
本文总结了三个动态规划问题的解题思路:1.不同路径问题使用二维DP数组,每个位置路径数等于左边和上边路径之和;2.带障碍物的不同路径问题需额外处理障碍物位置,初始化时遇到障碍物则后续位置置0;3.不同二叉搜索树问题通过分解子问题,dp[i]表示i个节点的BST数量,递推公式为左右子树可能性的乘积之和。作者通过实例分析展示了DP的应用,并分享了代码实现。最后表达了周末继续学习的决心。
2026-03-06 22:23:33
944
原创 代码随想录算法训练营第三十七天509. 斐波那契数|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
本文记录了动态规划入门练习的三道经典题目:509斐波那契数列、70爬楼梯和746最小花费爬楼梯。通过实践动态规划的五个解题步骤:确定dp数组含义、递推公式、初始化、遍历顺序和举例验证,作者实现了三种不同的动态规划解法。其中爬楼梯问题转化为斐波那契数列,最小花费问题则是带权值的变种。作者在解题过程中体会到动态规划的思想,同时也反映了学习过程中的疲惫感。这些基础题目为后续更复杂的背包问题打下了基础。
2026-03-05 22:55:13
271
原创 代码随想录算法训练营第三十六天|56. 合并区间、738.单调递增的数字、968.监控二叉树
本文总结了三个算法题的解题思路和代码实现:1)合并区间问题,通过排序和比较边界值处理重叠区间;2)单调递增数字问题,采用从右到左遍历并标记位置的方法;3)监控二叉树问题,利用后序遍历和状态判断确定摄像头放置位置。作者在总结中表示,虽然贪心算法专题已完结,但仍需通过练习来掌握其思维方式。文章提供了清晰的解题思路和注意事项,并附上了完整代码实现,展现了算法解题的思考过程和实践经验。
2026-03-04 23:07:52
676
原创 代码随想录算法训练营第三十五天|452. 用最少数量的箭引爆气球、 435. 无重叠区间 、763.划分字母区间
本文总结了三个区间相关贪心算法问题的解法:1. 452题使用排序后判断区间重叠的方法,通过更新右边界来最小化箭数;2. 435题通过排序和统计重叠区间数来解决无重叠区间问题;3. 763题利用哈希表记录字符最后出现位置来划分字母区间。作者认为无重叠区间问题最具挑战性,强调画图辅助理解的重要性。这些题目都涉及区间处理和重叠判断,掌握排序和边界更新的技巧是关键。
2026-03-03 23:16:08
270
原创 代码随想录算法训练营第三十四天|134. 加油站、135. 分发糖果、860.柠檬水找零、406.根据身高重建队列
本文总结了四道贪心算法题目的解题思路和代码实现。134题加油站问题通过累加油量差值确定起点;135题分发糖果采用左右两次遍历取较大值;860题柠檬水找零根据面额情况分类处理;406题根据身高重建队列先按身高排序再插入对应位置。作者表示虽然题目较难,但已养成每日打卡习惯,会继续坚持练习。这些题目展示了贪心算法在不同场景下的应用技巧,通过分析题目特征找到局部最优解的策略。
2026-03-02 23:12:54
707
原创 SHCTF题解|Web方向|Eazy_Pyrunner
本文分析了一个Python沙盒逃逸题目Eazy_Pyrunner的解题思路。题目设置了多重防御机制:WAF层禁用关键函数和引号,Runtime层污染模块缓存,Kernel层使用审计钩子阻止敏感操作。解题者通过字符拼接构造字符串,篡改全局函数(如len)使审计失效,利用__import__重新导入os模块,最终通过os.popen执行/read_flag获取flag(SHCTF{8f4021fb-e34c-499e-9c26-9a00fbf6d6ac})。
2026-03-01 14:40:50
991
原创 代码随想录算法训练营第三十二天| 122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II、1005.K次取反后最大化的数组和
本文总结了四道贪心算法题目的解题思路和代码实现。1. 股票买卖问题(122题):通过每日利润累加实现最大收益;2. 跳跃游戏(55题):维护最大覆盖范围判断能否到达终点;3. 跳跃游戏II(45题):使用双指针法求最少跳跃次数,并给出优化方案;4. K次取反(1005题):优先翻转最小负数,再处理剩余翻转次数。作者指出贪心算法需要针对每个问题单独思考,虽然代码简洁但思维难度较大。所有解法均通过示例代码展示,并附有详细思路说明。
2026-02-28 20:33:08
634
原创 代码随想录算法训练营第三十一天|455.分发饼干 、376. 摆动序列、53. 最大子序和
摘要:本文介绍了贪心算法的理论基础和三个典型应用。贪心算法通过局部最优推导全局最优,缺乏固定模式。455题通过排序饼干和孩子胃口,用大饼干优先满足大胃口;376题通过寻找序列峰值点求最长摆动序列;53题用累计和方式求最大子数组和。作者指出贪心算法关键在于找到局部最优解,需要较强的假设验证和创新能力。随着题目难度增加,这种特性会更为明显。
2026-02-27 16:57:36
388
原创 代码随想录算法训练营第三十天|491.递增子序列、46.全排列、47.全排列 II、51.N皇后、37.解数独
本文介绍了回溯算法在解决多个问题中的应用。主要包括:1) 非递减子序列问题,通过数组去重确保递增子序列;2) 全排列问题,使用used数组避免重复选择;3) 含重复元素的全排列问题,结合排序和used数组去重;4) N皇后问题,通过合法性判断和递归实现;5) 解数独问题,采用二维递归和九宫格验证。文章总结了回溯算法的核心思想:递归尝试所有可能,通过剪枝优化效率。这些问题的解决思路体现了回溯算法的通用性和灵活性,虽然N皇后和解数独难度较高,但通过层层递进的学习可以掌握。
2026-02-26 21:51:34
729
原创 代码随想录算法训练营第二十九天|93.复原IP地址、78.子集、90.子集II
本文摘要: 本文介绍了三个回溯算法题目的解题思路和代码实现。1.复原IP地址:通过回溯分割字符串,验证每段是否符合IP地址规则,注意处理前导零和数字范围;2.子集问题:在回溯过程中将当前路径加入结果集,与组合问题类似但收集结果时机不同;3.子集II(含重复元素):采用三种去重方法(used数组标记、unordered_set去重、直接比较相邻元素)避免重复子集。所有题目都体现了回溯算法的核心思想,通过剪枝和去重优化效率,需要重点理解树层去重的逻辑。
2026-02-25 19:30:03
324
原创 代码随想录算法训练营第二十八天|39. 组合总和、40.组合总和II 、131.分割回文串
本文总结了组合总和、组合总和II以及分割回文串三道回溯算法题目的解题思路。组合总和允许重复选取元素,通过调整startIndex实现;组合总和II需要处理重复元素,使用used数组进行去重;分割回文串则将字符串分割看作组合问题,额外添加回文判断。三题都采用回溯模板,但各有特点:前两题涉及元素选择和去重,第三题转换为字符串分割问题。作者表示虽然题目有难度,但通过深入思考能够解决,展现了回溯算法的灵活应用和逐步提升的解题能力。
2026-02-24 20:19:11
240
原创 代码随想录算法训练营第二十七天|77. 组合、 216. 组合总和 III、17.电话号码的字母组合
本文介绍了回溯算法在组合问题中的应用,通过三道LeetCode题目展开讲解。77题组合问题展示了如何用回溯替代暴力循环,通过递归和剪枝优化处理组合选择;216题组合总和III在基础上增加了总和条件判断;17题电话号码字母组合则演示了如何映射数字到字母并生成组合。作者通过这三道题掌握了回溯算法的核心思想:递归构建解空间并在不满足条件时回退(回溯),指出理解递归是掌握回溯的关键。文末总结表示通过学习已能独立实现回溯代码,对算法理解有所加深。
2026-02-23 20:53:17
359
原创 代码随想录第二十六天|669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
本文记录了二叉树相关算法的解题思路和代码实现。包括修剪二叉搜索树(根据区间值递归处理子树)、有序数组转二叉搜索树(中序遍历构建)、二叉搜索树转累加树(右序遍历累加)。作者总结了二叉树章节学习心得,虽然AI能快速解题,但强调深入理解算法原理的重要性。面对行业变化,认为应夯实基础、提升独立解题能力。最后提到即将返校,表达了对技术学习的坚持态度。
2026-02-22 13:57:41
318
原创 代码随想录算法训练营第二十五天|235. 二叉搜索树的最近公共祖先 、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点
本文介绍了二叉搜索树相关算法题的解题思路和实现代码。主要包括:1) 235题利用二叉搜索树性质快速找到最近公共祖先;2) 701题通过递归实现节点插入操作;3) 450题处理五种删除节点情况并保持树结构。作者总结指出删除节点操作较复杂,需要进一步理解不同解法。虽然题目难度适中,但假期结束让人感慨时间飞逝,仍需继续努力提升算法能力。
2026-02-21 12:51:38
488
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅