Part 5.4:区间 DP区间 DP 是动态规划中一个重要的模型,专门解决通过合并相邻元素求解区间最优值的问题。本文将以经典的“石子合并”问题为例,为你剖析区间 DP 的核心思想,并手把手带你掌握其状态定义、状态转移方程以及至关重要的遍历顺序。 2025-11-15 大学算法全体系 > Part 5:动态规划 #算法基础 #动态规划 #DP #区间DP
Part 2.7:并查集:高效处理“朋友圈”问题并查集(Disjoint Set Union)是处理动态连通性问题的利器。本文将通过“朋友圈”的生动比喻,深入剖析其 find 和 union 两大核心操作,并讲解路径压缩和按秩合并两大关键优化,让你彻底掌握这个查询效率近乎 O(1) 的高效数据结构。 2025-11-15 大学算法全体系 > Part 2:基础数据结构 #数据结构 #并查集 #Union-Find #路径压缩 #按秩合并
Part 5.3:最长公共子序列 (LCS)最长公共子序列(LCS)是动态规划在字符串问题上的经典应用。本文将从“代码比对”的直观场景入手,为你剖析 LCS 问题的二维 DP 解法,手把手推导状态转移方程,并展示如何通过回溯 DP 表找到具体的子序列,助你掌握这一面试高频题。 2025-11-15 大学算法全体系 > Part 5:动态规划 #动态规划 #DP #最长公共子序列 #LCS #字符串算法
Part 5.2:最长上升子序列 (LIS)最长上升子序列(LIS)是动态规划中的经典问题,也是面试高频题。本文将从 O(n²) 的朴素 DP 解法入手,逐步优化到 O(n log n) 的贪心+二分查找解法,通过详尽的图示、动画式案例和 Python 实现,带你彻底攻克 LIS 问题。 2025-11-15 大学算法全体系 > Part 5:动态规划 #二分查找 #动态规划 #DP #最长上升子序列 #LIS #贪心
Part 2.5:二叉树遍历:理解树的四种核心视角树的遍历是所有树相关算法的基石。本文将深入讲解前序、中序、后序和层序这四种核心遍历方式,不仅提供递归和迭代(非递归)两种实现,还通过动画式案例剖析其执行流程和适用场景,让你真正掌握从不同视角“阅读”一棵树的能力。 2025-11-15 大学算法全体系 > Part 2:基础数据结构 #二叉树 #递归 #数据结构 #栈 #队列 #树的遍历 #DFS #BFS
Part 5.1:DP 入门:背包问题动态规划(DP)是算法学习中的一座大山。本文将从最经典的 0-1 背包问题入手,用“小偷偷东西”的直观比喻,为你剖析 DP 的两大核心特性——最优子结构与重叠子问题,并手把手带你定义状态、推导状态转移方程,最终写出代码,助你迈出征服 DP 的第一步。 2025-11-15 大学算法全体系 > Part 5:动态规划 #算法基础 #动态规划 #DP #背包问题 #0-1背包
Part 7.1:贪心算法——局部最优通向全局最优的艺术贪心算法是一种在每一步都做出当前看起来最好的选择的算法策略。本文将深入剖析贪心算法的核心思想、适用条件、与动态规划的区别,通过经典案例带你掌握这一重要的算法设计范式。 2025-11-15 大学算法全体系 > Part 7:高级算法 #贪心算法 #Greedy Algorithm #算法设计 #算法思想 #面试算法
Part 2.4:树结构基础:从根到叶的层次艺术告别线性结构,进入非线性的树世界!本文将为你系统梳理树的核心概念与术语(节点、根、深度、高度等),介绍二叉树、满二叉树、完全二叉树等重要分类,并讲解树的两种主要存储方式(链式与数组),为后续深入学习树的遍历和高级树结构打下坚实基础。 2025-11-15 大学算法全体系 > Part 2:基础数据结构 #二叉树 #递归 #数据结构 #树 #树的遍历
Part 2.3:哈希表:O(1) 查找的黑魔法哈希表为何能实现近乎 O(1) 的查找速度?本文将为你揭开这层“黑魔法”的面纱,从哈希函数的设计到哈希冲突的经典解决方案(链地址法、开放地址法),通过图示、动画式案例和代码实战,让你彻底掌握这个在面试和工程中都至关重要的时间换空间利器。 2025-11-15 大学算法全体系 > Part 2:基础数据结构 #数据结构 #哈希表 #哈希函数 #哈希冲突 #散列表
Part 2.2:栈与队列:两种特殊的线性表栈(LIFO)和队列(FIFO)是两种操作受限但应用极其广泛的线性数据结构。本文将深入剖析它们的原理、实现(数组与链表)、复杂度,并通过动画式案例讲解其在函数调用、BFS、括号匹配等经典场景中的应用。 2025-11-15 大学算法全体系 > Part 2:基础数据结构 #数据结构 #栈 #队列 #LIFO #FIFO
Part 2.6:堆与优先队列:O(log n) 的动态极值查找如何在动态变化的数据集中快速找到最大值或最小值?堆(Heap)和优先队列(Priority Queue)为此而生。本文将深入讲解堆的结构特性、核心操作(上浮与下沉),以及如何用它实现高效的优先队列,助你掌握这一在调度、排序等领域至关重要的数据结构。 2025-11-15 大学算法全体系 > Part 2:基础数据结构 #数据结构 #堆 #优先队列 #完全二叉树 #堆排序
Part 2.1:数组与链表:相爱相杀的线性双雄作为数据结构的基石,数组和链表是每个程序员必须掌握的核心知识。本文将深入剖析这两种线性结构的底层原理、性能差异和适用场景,通过图示、动画式案例和代码实战,让你彻底理解它们的相爱相杀。 2025-11-15 大学算法全体系 > Part 2:基础数据结构 #数据结构 #数组 #链表 #线性表 #面试