数据结构与算法
2023-03-14 17:39:34 50 举报
AI智能生成
数据结构与算法
作者其他创作
大纲/内容
数据结构
基础数据结构
堆和优先队列
相关力扣题目
1481. 不同整数的最少数目
1834. 单线程 CPU
1851. 包含每个查询的最小区间
1985. 找出数组中的第 K 大整数
2034. 股票价格波动
乐鑫04. 自行车拉力赛
1962. 移除石子使总数最小
1942. 最小未被占据椅子的编号
2163. 删除元素后和的最小差值
2144. 打折购买糖果的最小开销
2208. 将数组和减半的最少操作次数
1882. 使用服务器处理任务
数据流的中第k位数问题
295. 数据流的中位数
2102. 序列顺序查询
堆和优先队列介绍
队列
相关力扣题目
158. 用 Read4 读取 N 个字符 II
5926. 买票需要的时间
队列的实现
队列的链表实现
队列的数组实现
环形队列的实现及阻塞队列
双栈实现队列
双向链表实现双端队列
链表
非环形链表
K 个一组翻转链表
从尾到头打印链表
反转链表
分割链表
复制带随机指针的链表
归并排序链表
合并K个排序链表
合并两个有序链表
链表分组
链表中的下一个更大节点
两两交换链表中的节点
两数相加
奇偶链表
输出链表中倒数第k个结点
有序链表转二叉搜索树
重排链表
相关力扣题目
147. 对链表进行插入排序
剑指 Offer II 077. 链表排序
2058. 找出临界点之间的最小和最大距离
206. 反转链表
92. 反转链表 II
5927. 反转偶数长度组的节点
建信01. 间隔删除链表结点
2095. 删除链表的中间节点
2130. 链表最大孪生和
2181. 合并零之间的节点
环形链表
约瑟夫环问题
环形链表
环形链表 II
求相交链表的第一个节点
树
相关力扣题目
1847. 最近的房间
1993. 树上的操作
2049. 统计最高分的节点数目
236. 二叉树的最近公共祖先
5944. 从二叉树一个节点到另一个节点每一步的方向
1938. 查询最大基因差
1932. 合并多棵二叉搜索树
2196. 根据描述创建二叉树
二叉树分类
平衡二叉树
二叉搜索树
满二叉树与完全二叉树
红黑树
TreeMap与红黑树
B树与B+树
哈夫曼树
对称二叉树
二叉树的遍历
二叉树的前序遍历
二叉树的中序遍历
二叉树的后序遍历
二叉树的层序遍历
二叉树的构造
从前序与中序遍历构造二叉树
从中序与后序遍历构造二叉树
树的遍历(BFS和DFS)
2003. 每棵子树内缺失的最小基因值
图
拓扑排序
207. 课程表
210. 课程表 II
269. 火星词典
1857. 有向图中最大颜色值
1136. 平行课程
2050. 并行课程 III
5947. 从给定原材料中找到所有可以做出的菜
环路检测与求解
2127. 参加会议的最多员工数
拓扑排序(有向图/无向图)
DFS(有向图)
并查集(无向图)
基环树问题
什么是基环树
图的遍历(BFS与DFS)
5921. 最大化一张图中的路径价值
815. 公交路线
建信03. 地铁路线规划
2192. 有向无环图中一个节点的所有祖先
欧拉图/半欧拉图
753. 破解保险箱
332. 重新安排行程
5932. 合法重新排列数对
割点与桥边
最小生成树
最短路
多源最短路径
Floyd算法
多源最短路径问题(Floyd算法)
相关力扣题目
1462. 课程表 IV
单源最短路径
负权
贝尔曼-福特算法与spfa算法
非负权
单源最短路径问题(Dijkstra算法)
dijkstra算法为什么不能有负边
相关力扣题目
743. 网络延迟时间
1514. 概率最大的路径
1631. 最小体力消耗路径
787. K 站中转内最便宜的航班
1786. 从第一个节点出发到最后一个节点的受限路径数
1928. 规定时间内到达终点的最小花费
1976. 到达目的地的方案数
2203. 得到要求路径的最小带权子图
无权
BFS算法求单源最短路径(路径权值固定)
2039. 网络空闲的时刻
2045. 到达目的地的第二短时间
一文解决有权最短路径问题
图的表示方法(什么时候用邻接矩阵,什么时候用邻接表)
邻接矩阵
邻接表
类
栈
1996. 游戏中弱角色的数量
2197. 替换数组中的非互质数
单调栈
316. 去除重复字母
1081. 不同字符的最小子序列
321. 拼接最大数
402. 移掉 K 位数字
2030. 含特定字母的最小子序列
1944. 队列中可以看到的人数
栈的实现
数组实现栈
栈的链表实现
155. 最小栈
计算器系列
2019. 解出数学表达式的学生分数
241. 为运算表达式设计优先级
224. 基本计算器
227. 基本计算器 II
772. 基本计算器 III
770. 基本计算器 IV
面试题 16.26. 计算器
1896. 反转表达式值的最少操作次数
计算器系列(前中后缀表达式)
括号生成系列
678. 有效的括号字符串
2116. 判断一个括号字符串是否有效
20. 有效的括号
矩阵(二维数组/多维数组)
5928. 解码斜向换位密码
1914. 循环轮转矩阵
1886. 判断矩阵经轮转后是否一致
矩阵找数
“之”字形打印矩阵
旋转正方形矩阵
顺时针打印矩阵
稀疏数组
螺旋矩阵问题
螺旋矩阵I
螺旋矩阵II
螺旋矩阵III
高级数据结构
并查集
相关力扣题目
1697. 检查边长度限制的路径是否存在
1568. 使陆地分离的最少天数
1632. 矩阵转换后的秩
1998. 数组的最大公因数排序
803. 打砖块(获取各个连通分量的大小)
1970. 你能穿过矩阵的最后一天
5929. 处理含限制条件的好友请求
2092. 找出知晓秘密的所有专家(split)
399. 除法求值(带权值的并查集)
990. 等式方程的可满足性
547. 省份数量(获取连通分量的数量)
684. 冗余连接
1319. 连通网络的操作次数
1631. 最小体力消耗路径
959. 由斜杠划分区域
1202. 交换字符串中的元素
947. 移除最多的同行或同列石头
721. 账户合并
1579. 保证图可完全遍历
778. 水位上升的泳池中游泳
2157. 字符串分组
并查集概念及用法分析
并查集及时间复杂度分析
线段树
单点更新
静态开点
线段树(区间树)
303. 区域和检索 - 数组不可变
307. 区域和检索 - 数组可修改
2213. 由单个字符重复的最长子字符串
动态开点
多点更新
静态开点
动态开点
稀疏表
完全理解ST稀疏表在线处理RMQ问题及RGQ问题
树状数组
「树状数组」知识入门
5999. 统计数组中好三元组数目
2193. 得到回文串的最少操作次数
字典树(前缀树)
相关力扣题目
208. 实现 Trie (前缀树)
1065. 字符串的索引对
720. 词典中最长的单词
676. 实现一个魔法字典
648. 单词替换
211. 添加与搜索单词
212. 单词搜索 II
336. 回文对
面试题 17.15. 最长单词
1858. 包含所有前缀的最长单词
1948. 删除系统中的重复文件夹
Trie(字典树、前缀树)
最大异或值问题
421. 数组中两个数的最大异或值
1707. 与数组中元素的最大异或值
1938. 查询最大基因差
后缀数组
算法
字符串匹配
BF算法与RK算法
BM算法
KMP算法
459. 重复的子字符串
回文串问题
Manacher算法
5. 最长回文子串
214. 最短回文串
1960. 两个回文子字符串长度的最大乘积
131. 分割回文串
1246. 删除回文子数组
125. 验证回文串
132. 分割回文串 II
5. 最长回文子串
516. 最长回文子序列
1682. 最长回文子序列 II
2002. 两个回文子序列长度的最大乘积
266. 回文排列
336. 回文对
5956. 找出数组中的第一个回文字符串
系统设计
2043. 简易银行系统
5911. 模拟行走机器人 II
1912. 设计电影租借系统
Topk问题
基于BFPRT算法解决
基于快排解决
基于堆排解决
相关力扣题目
剑指 Offer II 076. 数组中的第 k 大的数字
十大排序算法
冒泡排序
1585. 检查字符串是否可以通过排序子字符串得到另一个字符串
插入排序
希尔排序
选择排序
归并排序
面试题 10.01. 合并排序的数组
逆序对问题
题目 315. 计算右侧小于当前元素的个数
剑指 Offer 51. 数组中的逆序对
堆排序
快速排序
荷兰国旗问题
计数排序
剑指 Offer II 075. 数组相对排序
基数排序
桶排序
剑指 Offer II 057. 值和下标之差都在给定的范围内
剑指 Offer II 060. 出现频率最高的 k 个数字
排序算法总结
递归
38. 外观数列
分治
241. 为运算表达式设计优先级
273. 整数转换英文表示
247. 中心对称数 II
回溯算法
126. 单词接龙 II
127. 单词接龙
131. 分割回文串
1311. 获取你好友已观看的视频
17. 电话号码的字母组合
22. 括号生成
37. 解数独
39. 组合总和
40. 组合总和 II
46. 全排列
47. 全排列 II
488. 祖玛游戏
51. N 皇后
60. 排列序列
679. 24 点游戏
77. 组合
78. 子集
90. 子集 II
784. 字母大小写全排列
79. 单词搜索
212. 单词搜索 II
93. 复原 IP 地址
282. 给表达式添加运算符
291. 单词规律 II
2014. 重复 K 次的最长子序列
301. 删除无效的括号
306. 累加数
1982. 从子集的和还原数组
320. 列举单词的全部缩写
2059. 转化数字的最小运算数
2060. 同源字符串检测
2056. 棋盘上有效移动组合的数目
1947. 最大兼容性评分和
深度优先搜索与广度优先搜索
深度优先搜索
130. 被围绕的区域
200. 岛屿数量
529. 扫雷游戏
733. 图像渲染
248. 中心对称数 III
49. 字母异位词分组
249. 移位字符串分组
1992. 找到所有的农场组
剑指 Offer II 112. 最长递增路径
2101. 引爆最多的炸弹
2018. 判断单词是否能放入填字游戏内
1958. 检查操作是否合法
2120. 执行所有后缀指令
2121. 相同元素的间隔之和
1905. 统计子岛屿
广度优先搜索
2146. 价格范围内最高排名的K样物品
1926. 迷宫中离入口最近的出口
动态规划
1235. 规划兼职工作
1340. 跳跃游戏 V
161. 相隔为 1 的编辑距离
72. 编辑距离
813. 最大平均值和的分组
1653. 使字符串平衡的最少删除次数
剑指 Offer 42. 连续子数组的最大和
1997. 访问完所有房间的第一天
2008. 出租车的最大盈利
343. 整数拆分
410. 分割数组的最大值
1043. 分隔数组以得到最大和
1048. 最长字符串链
1218. 最长定差子序列
562. 矩阵中最长的连续1线段
873. 最长的斐波那契子序列的长度
1027. 最长等差数列
剑指 Offer II 095. 最长公共子序列
1959. K 次调整数组大小浪费的最小总空间
2140. 解决智力问题
1937. 扣分后的最大得分
2167. 移除所有载有违禁货物车厢所需的最少时间
不同子序列问题
1987. 不同的好子序列数目
115. 不同的子序列
940. 不同的子序列 II
1955. 统计特殊子序列的数目
背包问题
1751. 最多可以参加的会议数目 II
2054. 两个最好的不重叠活动
1981. 最小化目标值与所选元素的差
6011. 完成比赛的最少时间
1928. 规定时间内到达终点的最小花费
1911. 最大子序列交替和
2209. 用地毯覆盖后的最少白色砖块
1883. 准时抵达会议现场的最小跳过休息次数
2218. 从栈中取出 K 个硬币的最大面值和
记忆化搜索
1900. 最佳运动员的比拼回合
区间DP
1246. 删除回文子数组
125. 验证回文串
132. 分割回文串 II
139. 单词拆分
140. 单词拆分 II
1478. 安排邮筒
312. 戳气球
5. 最长回文子串
516. 最长回文子序列
1682. 最长回文子序列 II
546. 移除盒子
87. 扰乱字符串
1977. 划分数字的方案数
LCP 36. 最多牌组数
状态压缩
状态压缩+预处理
320. 列举单词的全部缩写
1601. 最多可达成的换楼请求数目
1255. 得分最高的单词集合
1986. 完成任务的最少工作时间段
1994. 好子集的数目
1980. 找出不同的二进制字符串
1755. 最接近目标值的子序列和
2035. 将数组分成两个数组并最小化数组和的差
2044. 统计按位或能得到最大值的子集数目
1542. 找出最长的超赞子字符串
2151. 基于陈述统计最多好人数
1915. 最美子字符串的数目
2212. 射箭比赛中的最大得分
状态压缩+动态规划
1434. 每个人戴不同帽子的方案数
1799. N 次操作后的最大分数和
1349. 参加考试的最大学生数
1681. 最小不兼容性
691. 贴纸拼词
2002. 两个回文子序列长度的最大乘积
1494. 并行课程 II
2172. 数组的最大与和
1931. 用三种不同颜色为网格涂色
二分查找
什么是二分查找
模板一
1150. 检查一个数是否在数组中占绝大多数
1552. 两球之间的磁力
33. 搜索旋转排序数组
81. 搜索旋转排序数组 II
349. 两个数组的交集
35. 搜索插入位置
367. 有效的完全平方数
4. 寻找两个正序数组的中位数
702. 搜索长度未知的有序数组
LCP 08. 剧情触发时间
LCP 12. 小张刷题计划
1751. 最多可以参加的会议数目 II
2054. 两个最好的不重叠活动
模板二
1062. 最长重复子串
1231. 分享巧克力
1508. 子数组和排序后的区间和
1885. Count Pairs in Two Arrays
1889. 装包裹的最小浪费空间
287. 寻找重复数
29. 两数相除
410. 分割数组的最大值
5862. 使数组连续的最少操作数
668. 乘法表中第k小的数
719. 找出第 k 小的距离对
744. 寻找比目标字母大的最小字母
875. 爱吃香蕉的珂珂
5920. 分配给商店的最多商品的最小值
LCP 18. 早餐组合
LCP 28. 采购方案
5912. 每一个查询的最大美丽值
upper_bound/lower_bound
2040. 两个有序数组的第 K 小乘积
2080. 区间内查询数字的频率
5955. 摘水果
模板三
1011. 在 D 天内送达包裹的能力
1095. 山脉数组中查找目标值
1300. 转变数组后最接近目标值的数组和
1482. 制作 m 束花所需的最少天数
153. 寻找旋转排序数组中的最小值
154. 寻找旋转排序数组中的最小值 II
275. H 指数 II
34. 在排序数组中查找元素的第一个和最后一个位置
658. 找到 K 个最接近的元素
786. 第 K 个最小的素数分数
852. 山脉数组的峰顶索引
5913. 你可以安排的最多任务数目
718. 最长重复子数组
1923. 最长公共子路径
2141. 同时运行N台电脑的最长时间
6010. 完成旅途的最少时间
1898. 可移除字符的最大数目
2216. 美化数组的最少删除数
滑动窗口
158. 至多包含两个不同字符的最长子串
159. 至多包含两个不同字符的最长子串
1610. 可见点的最大数目
3. 无重复字符的最长子串
30. 串联所有单词的子串
76. 最小覆盖子串
剑指 Offer 48. 最长不含重复字符的子字符串
剑指 Offer II 057. 值和下标之差都在给定的范围内
面试题 17.18. 最短超串
5862. 使数组连续的最少操作数
395. 至少有 K 个重复字符的最长子串
1984. 学生分数的最小差值
718. 最长重复子数组
建信02. 柱状图分析
非固定窗口大小(双指针)
424. 替换后的最长重复字符
1004. 最大连续1的个数 III
2024. 考试的最大困扰度
2038. 如果相邻两个颜色均相同则删除当前颜色
5958. 股票平滑下跌阶段的数目
1957. 删除字符使字符串变好
固定窗口大小
2134. 最少交换次数来组合所有的 1 II
1888. 使二进制字符串字符交替的最少反转次数
离线思维
旋转Hash
718. 最长重复子数组
1923. 最长公共子路径
2156. 查找给定哈希值的子串
1316. 不同的循环子字符串
索引数组
2080. 区间内查询数字的频率
摩尔投票
剑指 Offer 39. 数组中出现次数超过一半的数字
229. 求众数 II
前缀和与差分数组
前缀和技巧:解决子数组问题
304. 二维区域和检索 - 矩阵不可变
1878. 矩阵中最大的三个菱形和
1170. 比较字符串最小字母出现频次
1991. 找到数组的中间位置
2012. 数组美丽值求和
845. 数组中的最长山脉
2055. 蜡烛之间的盘子
2090. 半径为 k 的子数组平均值
2088. 统计农场中肥沃金字塔的数目
2025. 分割数组的最多方案数
5955. 摘水果
2100. 适合打劫银行的日子
2017. 网格游戏
二维前缀和与差分数组
2132. 用邮票贴满网格图
前缀和
2155. 分组得分最高的所有下标
2145. 统计隐藏数组数目
1906. 查询差绝对值的最小值
差分数组
论那些小而美的算法技巧:差分数组/前缀和
1943. 描述绘画结果
矩阵快速幂
1137. 第 N 个泰波那契数
剑指 Offer 10- I. 斐波那契数列
552. 学生出勤记录 II
建信04. 电学实验课
打表法
1646. 获取生成数组中的最大值
401. 二进制手表
模拟
551. 学生出勤记录 I
1720. 解码异或后的数组
1486. 数组异或操作
896. 单调数列
867. 转置矩阵
766. 托普利茨矩阵
566. 重塑矩阵
413. 等差数列划分
263. 丑数
1629. 按键持续时间最长的键
73. 矩阵置零
1583. 统计不开心的朋友
1961. 检查字符串是否为数组前缀
1963. 使字符串平衡的最小交换次数
2089. 找出数组排序后的目标下标
2094. 找出 3 位偶数
2087. 网格图中机器人回家的最小代价
2078. 两栋颜色不同且距离最远的房子
2079. 给植物浇水
5954. 给植物浇水 II
2022. 将一维数组转变成二维数组
2023. 连接后等于目标字符串的字符串对
5952. 环和杆
5953. 子数组范围和
412. Fizz Buzz
434. 字符串中的单词数
2016. 增量元素之间的最大差值
2028. 找出缺失的观测数据
5957. 向字符串添加空格
991. 坏了的计算器
LCP 17. 速算机器人
5946. 句子中的最多单词数
2119. 反转两次的数字
1952. 三除数
1945. 字符串转化后的各位数字之和
2124. 检查是否所有 A 都在 B 之前
2125. 银行中的激光束数量
2129. 将标题首字母大写
2133. 检查是否每一行每一列都包含全部整数
2138. 将字符串拆分为若干长度为 k 的组
2154. 将找到的值乘以 2
1941. 检查是否所有字符出现次数相同
1935. 可以输入的最大单词数
5996. 统计数组中相等且可以被整除的数对
5997. 找到和为给定整数的三个连续整数
5998. 拆分成最多数目的偶整数之和
2160. 拆分数位后四位数字的最小和
2161. 根据给定数字划分数组
2162. 设置时间的最少代价
2165. 重排数字的最小值
2169. 得到 0 的操作数
6008. 统计包含给定前缀的字符串
6009. 使两字符串互为字母异位词的最少步骤数
2180. 统计各位数字之和为偶数的整数个数
区间问题
秒懂力扣区间题目:重叠区间、合并区间、插入区间
1229. 安排会议日程
剑指 Offer II 074. 合并区间
1353. 最多可以参加的会议数目
630. 课程表 III
1893. 检查是否区域内所有整数都被覆盖
子序列问题
最长上升子序列问题
1626. 无矛盾的最佳球队
1691. 堆叠长方体的最大高度
300. 最长递增子序列
354. 俄罗斯套娃信封问题
673. 最长递增子序列的个数
面试题 08.13. 堆箱子
面试题 17.08. 马戏团人塔
1964. 找出到每个位置为止最长的有效障碍赛跑路线
5959. 使数组 K 递增的最少操作次数
不同子序列问题
1987. 不同的好子序列数目
115. 不同的子序列
940. 不同的子序列 II
2099. 找到和最大的长度为 K 的子序列
双指针
923. 三数之和的多种可能
1995. 统计特殊四元组
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
剑指 Offer II 007. 数组中和为 0 的三个数
面试题 16.06. 最小差
面试题 16.21. 交换和
面试题 16.24. 数对和
243. 最短单词距离
245. 最短单词距离 III
246. 中心对称数
345. 反转字符串中的元音字母
457. 环形数组是否存在循环
统计
266. 回文排列
分类讨论
2091. 从数组中移除最大值和最小值
1927. 求和游戏
1904. 你完成的完整对局数
2211. 统计道路上的碰撞次数
位运算
面试题 01.01. 判定字符是否唯一
面试题 17.04. 消失的数字
318. 最大单词长度乘积
1763. 最长的美好子字符串
2157. 字符串分组
2166. 设计位集
排列组合
1830. 使字符串有序的最少操作次数
1916. 统计为蚁群构筑房间的不同顺序
贪心算法
2033. 获取单值网格的最小操作数
1975. 最大方阵和
1969. 数组元素的最小非零乘积
674. 最长连续递增序列
2086. 从房屋收集雨水需要的最少水桶数
2037. 使每位学生都有座位的最少移动次数
LCP 40. 心算挑战
2027. 转换字符串的最少操作次数
1686. 石子游戏 VI
316. 去除重复字母
1081. 不同字符的最小子序列
321. 拼接最大数
402. 移掉 K 位数字
2030. 含特定字母的最小子序列
678. 有效的括号字符串
2116. 判断一个括号字符串是否有效
1953. 你可以工作的最大周数
1946. 子字符串突变后可能得到的最大整数
2126. 摧毁小行星
2136. 全部开花的最早一天
2139. 得到目标值的最少行动次数
2141. 同时运行N台电脑的最长时间
1936. 新增的最少台阶数
2170. 使数组变成交替数组的最少操作数
1921. 消灭怪物的最大数量
Bitmap算法
BitMap算法浅谈
正则表达式
65. 有效数字
数学
50.快速幂运算
LCP 37. 最小矩形面积
1979. 找出数组的最大公约数
233. 数字 1 的个数
2081. k 镜像数字的和
415. 字符串相加
43. 字符串相乘
5949. 一个区间内所有数乘积的缩写
1954. 收集足够苹果的最小花园周长
2171. 拿出最少数目的魔法豆
2183. 统计可以被 K 整除的下标对数目
1922. 统计好数字的数目
最大公约数/最小公倍数
2217. 找到指定长度的回文数
字符串相关题目(经典)
151. 翻转字符串里的单词
186. 翻转字符串里的单词II
157. 用 Read4 读取 N 个字符
158. 用 Read4 读取 N 个字符 II
165. 比较版本号
166. 分数到小数
168. Excel表列名称
171. Excel 表列序号
58. 最后一个单词的长度
67. 二进制求和
68. 文本左右对齐
271. 字符串的编码与解码
2000. 反转单词前缀
293. 翻转游戏
5918. 统计字符串中的元音子字符串
5919. 所有子字符串中的元音
2182. 构造限制重复的字符串
0 条评论
下一页
为你推荐
查看更多