算法笔记

「算法笔记」二叉树的宽度

#### 问题描述 &emsp;给定一个二叉树,编写一个函数来获取这个树的最大宽度。树的宽度是所有层中的最大宽度。这个二叉树与满二叉树(full binary tree)结构相同,但一些节点为空。<br><p></p> &emsp;每一层的宽度被定义为两个端点(该层最左和最右的非空节点,两端点间的………


「算法笔记」二叉树的最近公共祖先

#### 问题描述 &emsp;给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。<br><p></p> **示例 1:**<br> <center><img src="/media/blog_image/微信截图_20201201012959814.png"></center> ``` 输………


「算法笔记」二叉树的层序遍历

#### 问题介绍 &emsp;即获取二叉树每一层的节点。<br><p></p> &emsp;如给定二叉树:`[3,9,20,null,null,15,7]`<br> <img src="/media/blog_image/file_1615516974000.png" style="margin………


「算法笔记」实现 LRU 缓存机制

&emsp;LRU 是 Least Recently Used 的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。<br><p></p> &emsp;LRU 缓存机制常借助双向链表实现,以下通过一道 LeetCode 算法题介绍一种 LRU 机制的实现。 ………


「算法笔记」0-1 背包问题

&emsp;经典的 0-1 背包问题描述如下: ``` 给你一个可装载重量为 W 的背包和 N 个物品,其中第 i 个物品的重量为 wt[i],价值为 val[i],现在让你用这个背包装物品,最多能装的价值是多少。 ``` &emsp;题目中的物品不可以分割,要么装进包里,要么不装。<br><p>………


「算法笔记」动态规划解题模板

#### 解题思路 &emsp;动态规划的一般形式是求最优解,其本质其实就是穷举法。但其目的在于缓存重叠子问题的解,用子问题的解来解决全局问题。<br><p></p> &emsp;动态规划的解题思路一般如下: - 找出问题的子结构 - 列出正确的状态转移方程,而写出正确的状态转移方程一………