数据结构与算法
文章平均质量分 89
该专栏将记录作者学习数据结构与算法的过程与心得,若对您有所帮助,欢迎点赞。
魔法攻城狮MRL
技术到位,功夫到家
展开
-
【二叉树】学习与刷题的目录总览
二叉树是每个程序员学习过程中不可绕开的知识,重要性不言而喻。本文总结作者博客与二叉树相关的学习与刷题链接,分类整理,便于查漏补缺。一、二叉树的遍历方式1、理论学习【二叉树】(一)递归遍历算法 讲述递归法实现前序遍历、中序遍历、后序遍历【二叉树】(二)基于栈的迭代遍历讲述用迭代法实现前序遍历、中序遍历、后序遍历和层序遍历2、实践刷题【LeetCode】二叉树的深度优先遍历先序遍历、中序遍历和后序遍历相关的3道LeetCode题目的Python与C++实现【Leet...原创 2021-07-18 18:26:35 · 137 阅读 · 1 评论 -
【二分查找】4. 寻找两个正序数组的中位数
本文以暴力搜索和二分查找详细分析了4. 寻找两个正序数组的中位数题目的原创 2022-06-15 17:50:44 · 608 阅读 · 1 评论 -
【深度优先搜索】312.戳气球
本文使用深度优先搜索、记忆化搜索、动态规划三种思路分析312.戳气球题目,使用C++实现。原创 2022-06-14 21:34:03 · 206 阅读 · 0 评论 -
【栈+深度优先搜索】括号问题大汇总
括号系列算法问题是经典的面试高频题,括号系列题目的核心考点就是用栈和DFS 算法。原创 2022-05-14 00:31:13 · 508 阅读 · 0 评论 -
【深度优先遍历】经典岛屿问题汇总
岛屿系列算法问题是经典的面试高频题,岛屿系列题目的核心考点就是用 DFS/BFS 算法遍历二维数组。如何在二维矩阵中使用 DFS 搜索呢? 我们可以把二维矩阵中的每个点看做一个节点,这个节点的上下左右四个位置就是相邻节点,那么整个矩阵就可以抽象成一幅网状的「图」结构,二维矩阵的搜索问题就变成了从某个点出发,向上下左右四个方向进行深度搜索的问题。原创 2022-05-10 23:22:06 · 1937 阅读 · 0 评论 -
【二叉树】(一)递归遍历算法
前言二叉树的遍历算法是二叉树最基础的算法,没有之一。二叉树的遍历算法主要有4种:先序遍历,中序遍历,后续遍历和层次遍历,其中第1-3个属于深度优先遍历,第4个属于广度优先遍历。对二叉树的3种深度优先遍历算法的学习有三个层次:(一)精通遍历算法的递归实现;(二)精通遍历算法的基于栈结构的迭代实现;(三)精通遍历算法的统一风格的递归实现。我们希望读者至少可以掌握前两个层次。本文讲解递归实现的深度优先遍历算法,使用C++和Python3分别进行演示。一、二叉树节点的定义现在原创 2021-07-13 23:08:17 · 2976 阅读 · 1 评论 -
【二叉树】(二)基于栈的迭代遍历
前言二叉树的遍历算法是二叉树最基础的算法,没有之一。二叉树的遍历算法主要有4种:先序遍历,中序遍历,后续遍历和层次遍历,其中第1-3个属于深度优先遍历,第4个属于广度优先遍历。对二叉树的3种深度优先遍历算法的学习有三个层次:(一)精通遍历算法的递归实现;(二)精通遍历算法的借助栈结构的迭代实现;(三)精通遍历算法的不借助栈结构的递归实现。我们希望读者至少可以掌握前两个层次。本文讲解借助栈的深度优先遍历算法和借助队列的广度优先遍历算法,使用C++和Python3分别进行演示。原创 2021-07-17 16:00:42 · 417 阅读 · 1 评论 -
【二叉树】(三)确定一棵二叉树
前言在二叉树算法题型中中最常见的一类题型是根据遍历结果来推断二叉树结构,一般分为这两类:给定先序遍历和中序遍历,确定二叉树;给定中序遍历和后序遍历,确定二叉树。可以发现,给定的遍历结果中一定有中序遍历,请注意以下三条规律是设计该算法的依据:(1)中序遍历结果负责判断左右子树,在中间节点左侧一定属于其对应左子树,在右侧一定属于其右子树;(2)前序遍历结果第一个一定是中间节点,其后依次是其左子树节点和右子树节点;(3)后序遍历结果最后一个一定是中间节点,其前依次是其右子树节点和原创 2021-07-18 17:53:35 · 831 阅读 · 1 评论 -
【LeetCode】二叉树的深度优先遍历
前言本文展示LeetCode中与二叉树深度优先遍历相关的三道题,读者可以用来借此默写以检验是否熟悉相关算法,其难度为简单,但是我们推荐读者使用进阶版等更难的实现方法。 LeetCode题目 相关题目类型 相关链接 144 二叉树的先序遍历 https://leetcode-cn.com/problems/binary-tree-preorder-traversal/ .原创 2021-07-13 23:16:46 · 326 阅读 · 2 评论 -
【LeetCode】二叉树的广度优先遍历
前言本文展示LeetCode中与二叉树广度优先遍历(层序遍历)的变体相关的题目,读者可以用来借此默写以检验是否熟悉相关算法,其难度为简单或中等,我们会给出最基础的层序遍历算法,然后推荐读者熟练掌握相关变体算法。 LeetCode题目 相关题目类型 相关链接 102 二叉树的层序遍历-按层输出(中等难度) https://leetcode-cn.com/problems/binary-tr原创 2021-07-17 15:54:28 · 550 阅读 · 0 评论 -
【LeetCode】确定一棵二叉树
前言本文展示LeetCode中与确定一棵二叉树相关的题目,读者可以用来借此默写以检验是否熟悉相关算法,其难度为中等。 LeetCode题目 相关题目类型 相关链接 105 从前序与中序遍历序列构造二叉树(中等难度) https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traver原创 2021-07-18 17:56:59 · 146 阅读 · 0 评论