📚 labuladong 算法笔记
📖 本站简介 (1)
  • 本站简介
🚀 学习规划与入门 (19)
  • ACM 模式代码模板
  • AI 助教随时答疑
  • 初学读者学习规划
  • 本章导读
  • 网站/插件问题反馈
  • 配套 Chrome 刷题插件
  • 时间空间复杂度入门
  • 本章导读
  • 本章导读
  • 算法游戏玩法及汇总
  • 算法刷题的重点和坑
  • 配套 JetBrains 刷题插件
  • 力扣/LeetCode 解题须知
  • 速成读者学习规划
  • 本站付费会员
  • 本章导读
  • 正在更新 ing
  • 算法可视化面板使用说明
  • 配套 vscode/cursor 刷题插件
🧱 基础:数据结构与排序精讲 (49)
  • 数组(顺序存储)基本原理
  • 动态数组代码实现
  • 用数组实现队列/栈
  • 二叉堆核心原理及可视化
  • 二叉堆/优先级队列代码实现
  • 二叉树基础及常见类型
  • 二叉树的递归/层序遍历
  • 位图原理及实现
  • 布隆过滤器原理及实现
  • 拥有稳定性:冒泡排序
  • 博采众长:桶排序
  • 全新的排序原理:计数排序
  • 环形数组技巧及实现
  • 双端队列(Deque)原理及实现
  • 欧拉图和一笔画游戏
  • 图结构的通用代码实现
  • 最小生成树算法概览
  • 图结构最短路径算法概览
  • 图论中的基本术语
  • 图结构的 DFS/BFS 遍历
  • 哈希集合的原理及代码实现
  • 哈希表核心原理
  • 用拉链法实现哈希表
  • 用数组加强哈希表(ArrayHashMap)
  • 用链表加强哈希表(LinkedHashMap)
  • 二叉堆结构的运用:堆排序
  • 数据压缩和霍夫曼树
  • 运用逆向思维:插入排序
  • 线性探查法的两种代码实现
  • 线性探查法的两个难点
  • 用链表实现队列/栈
  • 链表(链式存储)基本原理
  • 链表代码实现
  • 妙用二叉树后序位置:归并排序
  • 多叉树的递归/层序遍历
  • 队列/栈基本原理
  • 妙用二叉树前序位置:快速排序
  • 基数排序(Radix Sort)
  • 红黑树的完美平衡及可视化
  • 线段树核心原理及可视化
  • 选择排序所面临的问题
  • 突破 O(N^2):希尔排序
  • 跳表核心原理
  • 排序算法的关键指标
  • 二叉搜索树的应用及可视化
  • TreeMap/TreeSet 代码实现
  • Trie/字典树/前缀树原理及可视化
  • Union Find 并查集原理
  • DFS 和 BFS 的适用场景
🎯 第零章:核心刷题框架汇总 (17)
  • 学习数据结构和算法的框架思维
  • 双指针技巧秒杀七道数组题目
  • 回溯算法解题套路框架
  • 解答回溯算法/DFS算法的若干疑问
  • BFS 算法解题套路框架
  • 二分搜索算法核心代码模板
  • 二分搜索左闭右开写法
  • 二叉树系列算法核心纲领
  • 算法时空复杂度分析实用指南
  • 分治算法解题套路框架
  • 动态规划解题套路框架
  • 贪心算法解题套路框架
  • 双指针技巧秒杀七道链表题目
  • 必知必会数学技巧
  • 回溯算法秒杀所有排列/组合/子集问题
  • 滑动窗口算法核心代码模板
  • 一个视角 + 两种思维模式搞定递归
🌲 第一章:经典数据结构算法 (38)
  • A* 算法核心原理及实现
  • 二叉树心法(思路篇)
  • 二叉树心法(构造篇)
  • 二叉树心法(后序篇)
  • 二分图判定算法
  • 二叉搜索树心法(特性篇)
  • 二叉搜索树心法(基操篇)
  • 二叉搜索树心法(构造篇)
  • 二叉搜索树心法(后序篇)
  • 一致性哈希算法的原理及实现
  • 拓展:如何计算完全二叉树的节点数
  • 环检测算法
  • 小而美的算法技巧:差分数组
  • Dijkstra 拓展:带限制的最短路问题
  • Dijkstra 算法核心原理及实现
  • Hierholzer 算法寻找欧拉路径
  • 拓展:惰性展开多叉树
  • 多源最短路径:Floyd 算法
  • 实现霍夫曼编码压缩算法
  • 拓展:如何实现一个计算器
  • 拓展:用栈模拟递归迭代遍历二叉树
  • Kruskal 最小生成树算法
  • 算法就像搭乐高:手撸 LRU 算法
  • 单调队列结构解决滑动窗口问题
  • 单调栈算法模板解决三道例题
  • 如何判断回文链表
  • 小而美的算法技巧:前缀和数组
  • Prim 最小生成树算法
  • 常数时间删除/查找数组中的任意元素
  • 单链表的花式反转方法汇总
  • 优化:实现动态线段树
  • 基本线段树的代码实现
  • 优化:实现懒更新线段树
  • 二叉树心法(序列化篇)
  • 队列实现栈以及栈实现队列
  • 环检测及拓扑排序算法
  • Trie 树代码实现
  • Union-Find 并查集算法
⚡ 第二章:经典动态规划算法 (24)
  • 经典动态规划:戳气球
  • 旅游省钱大法:加权最短路径
  • 经典动态规划:编辑距离
  • 经典动态规划:高楼扔鸡蛋
  • 最优子结构原理和 dp 数组遍历方向
  • 动态规划帮我通关了《辐射4》
  • 经典动态规划:博弈问题
  • 一个方法团灭 LeetCode 打家劫舍问题
  • 经典动态规划:0-1 背包问题
  • 经典动态规划:子集背包问题
  • 经典动态规划:完全背包问题
  • 经典动态规划:最长公共子序列
  • 动态规划设计:最长递增子序列
  • 动态规划帮我通关了《魔塔》
  • 动态规划设计:最大子数组
  • base case 和备忘录的初始值怎么定?
  • 动态规划之最小路径和
  • 经典动态规划:正则表达式
  • 对动态规划进行空间压缩
  • 一个方法团灭 LeetCode 股票买卖问题
  • 动态规划之子序列问题解题模板
  • 背包问题的变体:目标和
  • 动态规划穷举的两种视角
  • 动态规划和回溯算法的思维转换
💡 第三章:高频面试算法技巧 (21)
  • 实际运用二分搜索时的思维框架
  • 常用的位操作
  • 剪视频剪出一个贪心算法
  • 设计考场座位分配算法
  • 讲两道常考的阶乘算法题
  • 老司机加油算法
  • 贪心算法之区间调度问题
  • 一文秒杀所有岛屿题目
  • 算法就像搭乐高:手撸 LFU 算法
  • 如何同时寻找缺失和重复的元素
  • 一行代码就能解决的算法题
  • 烧饼排序算法
  • 如何判定完美矩形
  • 如何高效寻找素数
  • 几个反直觉的概率问题
  • 谈谈游戏中的随机算法
  • 带权重的随机选择算法
  • 拓展:数组去重问题(困难版)
  • 扫描线技巧:安排会议室
  • 如何高效解决接雨水问题
  • 一文秒杀所有丑数系列问题
🛠️ 第四章:算法实战技巧精讲 (15)
  • 二维数组的花式遍历技巧
  • 田忌赛马背后的算法决策
  • 拓展:两个二叉堆实现中位数算法
  • 回溯算法实践:括号生成
  • 一个方法解决三道区间问题
  • 拓展:最近公共祖先系列解题框架
  • 拓展:归并排序详解及应用
  • 字符串乘法计算
  • 一个方法团灭 nSum 问题
  • 回溯算法实践:集合划分
  • 拓展:快速排序详解及应用
  • 滑动窗口延伸:Rabin Karp 字符匹配算法
  • 谁能想到,斗地主也能玩出算法
  • 回溯算法实践:数独和 N 皇后问题
  • 球盒模型:回溯算法穷举的两种视角
📝 配套练习与题集 (41)
  • 【练习】数组双指针经典习题
  • 【练习】回溯算法经典习题 I
  • 【练习】回溯算法经典习题 II
  • 【练习】回溯算法经典习题 III
  • 【练习】BFS 经典习题 II
  • 【练习】BFS 经典习题 I
  • 【练习】优先级队列经典习题
  • 【练习】二分搜索算法经典习题
  • 【练习】同时运用两种思维解题
  • 【练习】用「分解问题」思维解题 I
  • 【练习】用「分解问题」思维解题 II
  • 【练习】运用层序遍历解题 I
  • 【练习】运用层序遍历解题 II
  • 【练习】利用后序位置解题 I
  • 【练习】利用后序位置解题 II
  • 【练习】利用后序位置解题 III
  • 【练习】用「遍历」思维解题 I
  • 【练习】用「遍历」思维解题 II
  • 【练习】用「遍历」思维解题 III
  • 【练习】二叉搜索树经典例题 I
  • 【练习】二叉搜索树经典例题 II
  • 【练习】Dijkstra 算法经典习题
  • 【练习】更多经典设计习题
  • 【练习】动态规划经典习题 I
  • 【练习】动态规划经典习题 II
  • 【练习】欧拉路径经典习题
  • 【练习】哈希表更多习题
  • 【练习】背包问题经典习题
  • 【练习】链表双指针经典习题
  • 【练习】数学技巧相关习题
  • 【练习】单调队列的通用实现及经典习题
  • 【练习】单调栈的几种变体及经典习题
  • 【练习】括号类问题汇总
  • 【练习】前缀和技巧经典习题
  • 【练习】队列的经典习题
  • 【练习】打家劫舍问题模式
  • 【练习】线段树经典习题
  • 【练习】滑动窗口算法经典习题
  • 【练习】栈的经典习题
  • 【练习】Trie 树算法习题
  • 【练习】并查集经典习题
🎮 算法游戏实战 (9)
  • 【游戏】连连看游戏
  • 【游戏】华容道游戏
  • 【游戏】生命游戏
  • 【游戏】消消乐游戏
  • 【游戏】求解迷宫
  • 【游戏】扫雷 II
  • 【游戏】扫雷游戏地图生成器
  • 【游戏】实现贪吃蛇
  • 【游戏】实现数独作弊器
📑 精选专题汇总 (32)
  • 二叉树算法习题汇总
  • 数组链表的种种变换
  • 手把手刷数组算法
  • BFS 算法
  • 二叉树结构及遍历
  • 第二章、经典暴力搜索算法
  • 实现一个 Claude Code
  • 第零章、核心刷题框架汇总
  • 经典数据结构设计
  • DFS/回溯算法
  • 动态规划基本技巧
  • 用动态规划玩游戏
  • 第三章、经典动态规划算法
  • 第一章、经典数据结构算法
  • 手把手带你实现动态数组
  • 图结构基础及算法概览
  • 经典图算法
  • 贪心类型问题
  • 哈希表结构的种种变换
  • 哈希表的原理及实现
  • 经典面试题
  • 背包类型问题
  • 手把手带你实现单/双链表
  • 数学运算技巧
  • 二叉树的拓展延伸
  • 第四章、其他常见算法技巧
  • 针对初学和速成的学习规划
  • 手把手带你实现队列/栈
  • 基础:数据结构及排序精讲
  • 十大排序算法原理及可视化
  • 子序列类型问题
  • 配套学习工具使用指南
📋 更新日志 (5)
  • Chrome 刷题插件更新日志
  • JetBrains 刷题插件更新日志
  • 可视化面板更新日志
  • vscode 刷题插件更新日志
  • labuladong.online 更新日志
首页 > 📑 精选专题汇总 > 经典数据结构设计

经典数据结构设计

← 上一篇: 第零章、核心刷题框架汇总下一篇: DFS/回溯算法 →
本文目录