分类:数据结构

leetcode刷题目录

<p>本文是代码随想录 LeetCode 刷题系列的文章目录,按数组等专题汇总各道题目的题解链接,方便按知识点检索与系统复习。读者可据此快速定位到对应题解文章,循序渐进地完成算法刷题训练。</p>

路由选择算法(Dijkstra最短路径)Java编码实现

<p>介绍Dijkstra最短路径算法的基本思想与贪心选择过程,梳理U、prev、flag三个数组的初始化与更新步骤,并给出Java邻接矩阵实现及路径回溯打印的完整代码。</p>

哈夫曼树原理及Java编码实现

<p>讲解哈夫曼树的构造原理与带权路径长度WPL计算,分析按权重分布能够压缩存储的原因,并给出Java实现哈夫曼编码与解码的完整代码及测试过程。</p>

leetcode【二叉树—简单】二叉树迭代遍历

<p>本文讲解用栈实现二叉树的迭代遍历。文章给出节点定义与调试代码,介绍前序遍历先入右后入左的技巧、中序遍历用指针配合栈一路向左再回退的写法,以及后序遍历取中右左序列再反转得到左右中的思路。</p>

leetcode【栈与队列—简单】232.用栈实现队列

<p>本文讲解 LeetCode 232 用栈实现队列,要求仅用两个栈实现先入先出队列的 push、pop、peek、empty 操作。文章给出题目描述与调试代码,介绍进栈栈与出栈栈的分工,并强调仅在出栈栈为空时才把进栈栈元素整体倒入以均摊 O(1)。</p>

leetcode【二叉树—简单】二叉树递归遍历

<p>本文讲解二叉树的前序、中序、后序递归遍历,对应 LeetCode 144、94、145 三道题。文章给出节点定义与本地调试代码,分别说明三种遍历中访问根节点值的时机,并用递归方式简洁实现,帮助建立二叉树遍历的基础认知。</p>

leetcode【栈与队列—中等】347.前 K 个高频元素

<p>本文讲解 LeetCode 347 前 K 个高频元素,返回出现频率最高的 k 个元素。文章给出题目描述与调试代码,介绍用哈希表统计频率后配合小顶堆维护前 k 个的解法,以及先排序再遍历入优先队列的第二种实现思路。</p>

leetcode【栈与队列—困难】239.滑动窗口最大值

<p>本文记录 LeetCode 239 滑动窗口最大值的解法,需返回每个窗口中的最大值。文章给出题目描述与调试代码,重点讲解自定义单调队列:入队时弹出尾部较小元素,队头即最大值,并介绍用 max、pos 记录极值的窗口内比较法。</p>

leetcode【栈与队列—简单】20.有效的括号

<p>本文讲解 LeetCode 20 有效的括号,判断只含括号的字符串是否合法闭合。文章给出题目描述与调试代码,介绍遇到左括号就压入对应右括号、遇到右括号再与栈顶匹配的栈解法,并说明栈为空或栈顶不匹配时直接判定失败。</p>

leetcode【贪心算法—简单】455.分发饼干

<p>本文记录 LeetCode 455 分发饼干的贪心解法,目标是尽可能满足更多孩子。文章给出题目描述与调试代码,介绍先将孩子胃口与饼干尺寸升序排序,再以孩子为中心用双指针依次匹配,优先满足小胃口孩子从而得到最大满足数。</p>

leetcode【栈与队列—简单】225.用队列实现栈

<p>本文记录 LeetCode 225 用队列实现栈,要求用队列实现后入先出栈的四种操作。文章给出题目描述与调试代码,介绍两个单队列通过插入后倒腾并交换实现栈的解法,以及用一个双端队列每次从队头插入和弹出的简化实现。</p>

leetcode【栈与队列—中等】150.逆波兰表达式求值

<p>本文讲解 LeetCode 150 逆波兰表达式求值,根据后缀表达式计算整数结果。文章给出题目描述与调试代码,介绍遇到数字入栈、遇到运算符弹出两个数运算后再入栈的栈解法,并提醒减法和除法要区分操作数的先后顺序。</p>