赞
踩
(1)下面是本人在刷 LeetCode 算法题时制作的目录(持续更新),方便复习时查阅。
(2)该目录主要是按照数学基础、数据结构、基础算法/思想和其它算法/思想进行分类,并且在每个题型下面又分子题型以及简单、中等和困难这三个级别,主要注意的是一个题目可能涉及多种算法/思想,所以它可能在目录中重复出现,并且有些题目可能会有一些扩展说明。
(3)下面题目中用✨标记的表明该题(包括文章内部给出的相关题目)比较重要或是在面试中经常出现,可以多加关注。
(4)在刷题时,有一些思路是借鉴别人的,此处给出一位大佬的算法整理笔记,大家可以点击此处进行查看。
(5)LeetCode 中有些题目的难度可能会随着时间而变化,所以下面题目的难度可能无法与 LeetCode 中一一对应。
(6)此外,有关数据结构与算法的相关知识可以查看数据结构与算法这一专栏。
有关位运算的相关具体知识可以参考【算法技巧】位运算这篇文章。
简单
✨LeetCode_位运算_简单_136.只出现一次的数字
LeetCode_位运算_简单_190.颠倒二进制位
LeetCode_位运算_简单_191.位1的个数
LeetCode_位运算_简单_231.2 的幂
LeetCode_位运算_简单_268.丢失的数字
LeetCode_位运算_动态规划_简单_338.比特位计数
LeetCode_位运算_简单_405.数字转换为十六进制数
LeetCode_位运算_简单_461.汉明距离
LeetCode_位运算_简单_1684.统计一致字符串的数目
中等
LeetCode_位运算_中等_137.只出现一次的数字 II
LeetCode_位运算_中等_201.数字范围按位与
LeetCode_位运算_中等_260.只出现一次的数字 III
LeetCode_位运算_中等_318.最大单词长度乘积
LeetCode_位运算_中等_371.两整数之和
LeetCode_位运算_中等_477.汉明距离总和
LeetCode_位运算_递归_中等_779.第K个语法符号
困难
LeetCode_位运算_困难_805.数组的均值分割
LeetCode_位运算_困难_982.按位与为零的三元组
简单
LeetCode_加一_简单_66.加一
✨LeetCode_杨辉三角_简单_118.杨辉三角
LeetCode_杨辉三角_简单_119.杨辉三角II
LeetCode_进制转换_简单_171.Excel 表列序号
LeetCode_因式分解_简单_263.丑数
LeetCode_博弈_简单_292.Nim 游戏
LeetCode_原地修改_简单_448.找到所有数组中消失的数字
LeetCode_数学_简单_507.完美数
LeetCode_斐波那契数列_简单_509.斐波那契数
LeetCode_映射_简单_645.错误的集合
LeetCode_模拟_简单_1342.将数字变成 0 的操作次数
中等
✨LeetCode_旋转_中等_48.旋转图像
✨LeetCode_快速幂_递归_中等_50.Pow(x, n)
✨LeetCode_螺旋遍历_中等_54.螺旋矩阵
LeetCode_螺旋遍历_中等_59.螺旋矩阵 II
✨LeetCode_矩阵_中等_73.矩阵置零
LeetCode_格雷编码_中等_89.格雷编码
LeetCode_竖式计算_中等_166.分数到小数
LeetCode_阶乘_中等_172.阶乘后的零
LeetCode_素数筛_中等_204.计数质数
LeetCode_容斥原理_中等_223.矩形面积
LeetCode_平方根_中等_319.灯泡开关
LeetCode_排列组合_中等_357.统计各位数字都不同的数字个数
LeetCode_随机化_中等_380. O(1) 时间插入、删除和获取随机元素
LeetCode_位数统计_中等_400.第 N 位数字
LeetCode_等差数列_中等_413.等差数列划分
LeetCode_逆向思维_中等_453.最小操作次数使数组元素相等
LeetCode_模拟_中等_498.对角线遍历
LeetCode_模拟_中等_621.任务调度器
LeetCode_数学分析_中等_754.到达终点数字
LeetCode_数学归纳_中等_775.全局倒置与局部倒置
LeetCode_模拟_中等_799.香槟塔
LeetCode_博弈_中等_877.石子游戏
LeetCode_容斥原理_二分搜索_中等_1201.丑数 III
LeetCode_进制转换_中等_1780.判断一个数字是否可以表示成三的幂的和
LeetCode_模拟_中等_2596.检查骑士巡视方案
困难
LeetCode_数位枚举_困难_233.数字 1 的个数
LeetCode_矩形_困难_391.完美矩形
LeetCode_随机化_困难_710.黑名单中的随机数
LeetCode_容斥原理_二分搜索_困难_878.第 N 个神奇数字
LeetCode_数学推导_困难_891.子序列宽度之和
简单
✨LeetCode_双指针_哈希表_简单_1.两数之和
LeetCode_双指针_简单_26.删除有序数组中的重复项
LeetCode_双指针_简单_27.移除元素
LeetCode_双指针_哈希集合_简单_202. 快乐数
LeetCode_双指针_简单_283.移动零
LeetCode_双指针_二分搜索_简单_392.判断子序列
LeetCode_数组_简单_896.单调数列
LeetCode_双指针_简单_1332.删除回文子序列
中等
✨LeetCode_双指针_中等_11.盛最多水的容器
LeetCode_双指针_中等_15.三数之和
LeetCode_双指针_中等_16.最接近的三数之和
LeetCode_双指针_中等_18.四数之和
✨LeetCode_双指针_中等_31.下一个排列
LeetCode_数组_中等_36.有效的数独
LeetCode_双指针_中等_80.删除有序数组中的重复项 II
LeetCode_双指针_中等_167.两数之和 II - 输入有序数组
✨LeetCode_双指针_中等_189.轮转数组
✨LeetCode_双指针_二分搜索_中等_287.寻找重复数
LeetCode_数组_中等_289.生命游戏
LeetCode_双指针_中等_443.压缩字符串
LeetCode_双指针_中等_481.神奇字符串
LeetCode_双指针_排序_中等_524.通过删除字母匹配到字典里最长单词
LeetCode_双指针_中等_611.有效三角形的个数
LeetCode_双指针_中等_633.平方数之和
LeetCode_双指针_二分搜索_排序_中等_658.找到 K 个最接近的元素
LeetCode_双指针_中等_777.在LR字符串中交换相邻字符
LeetCode_多指针_二分搜索_中等_792.匹配子序列的单词数
LeetCode_双指针_中等_809.情感丰富的文字
LeetCode_双指针_优先级队列_中等_870.优势洗牌
LeetCode_模拟_中等_874.模拟行走机器人
LeetCode_数组_中等_915.分割数组
LeetCode_双指针_区间问题_中等_986.区间列表的交集
LeetCode_数组_中等_1620.网络信号最好的坐标
LeetCode_双指针_中等_1764.通过连接另一个数组的子数组得到一个数组
LeetCode_双指针_中等_1781.所有子字符串美丽值之和
困难
LeetCode_双指针_困难_42.接雨水
LeetCode_数组_困难_135.分发糖果
LeetCode_数组_困难_927.三等分
简单
✨LeetCode_双指针_简单_21.合并两个有序链表
LeetCode_双指针_简单_83.删除排序链表中的重复元素
✨LeetCode_双指针_简单_141.环形链表
✨LeetCode_双指针_简单_160.相交链表
✨LeetCode_双指针_递归_简单_206.反转链表
LeetCode_双指针_简单_234.回文链表
LeetCode_节点交换_简单_237.删除链表中的节点
LeetCode_双指针_简单_876.链表的中间结点
中等
LeetCode_双指针_中等_2.两数相加
LeetCode_双指针_中等_19.删除链表的倒数第 N 个结点
✨LeetCode_双指针_中等_24.两两交换链表中的节点
✨LeetCode_双指针_中等_61.旋转链表
LeetCode_双指针_中等_82.删除排序链表中的重复元素 II
LeetCode_双指针_中等_86.分隔链表
LeetCode_双指针_递归_中等_92.反转链表 II
LeetCode_双指针_中等_142.环形链表 II
✨LeetCode_双指针_中等_143.重排链表
LeetCode_双指针_中等_328.奇偶链表
LeetCode_链表_中等_445.两数相加 II
困难
✨LeetCode_双指针_递归_困难_25.K 个一组翻转链表
有关单调栈的相关具体知识可以参考【数据结构】单调栈这篇文章。
简单
LeetCode_栈_简单_20.有效的括号
LeetCode_栈_简单_155.最小栈
LeetCode_栈_简单_232.用栈实现队列
LeetCode_单调栈_简单_496.下一个更大元素 I
中等
LeetCode_栈_中等_150.逆波兰表达式求值
LeetCode_栈_中等_227.基本计算器 II(不含括号)
LeetCode_单调栈_中等_316.去除重复字母
LeetCode_单调栈_中等_456.132 模式
LeetCode_单调栈_中等_503.下一个更大元素 II
LeetCode_单调栈_中等_581.最短无序连续子数组
✨LeetCode_栈_中等_735.行星碰撞
✨LeetCode_单调栈_中等_739.每日温度
LeetCode_栈_中等_856.括号的分数
LeetCode_单调栈_中等_901.股票价格跨度
LeetCode_单调栈_中等_907.子数组的最小值之和
LeetCode_栈_中等_921.使括号有效的最少添加
LeetCode_栈_中等_1003.检查替换后的词是否有效
LeetCode_单调栈_中等_1019.链表中的下一个更大节点
LeetCode_栈_中等_1441.用栈操作构建数组
困难
LeetCode_栈_动态规划_困难_32.最长有效括号
✨LeetCode_单调栈_困难_84.柱状图中最大的矩形
LeetCode_单调栈_困难_85.最大矩形
LeetCode_栈_困难_227.基本计算器(不含乘除)
✨LeetCode_栈_困难_394.字符串解码
LeetCode_数据结构设计_困难_895.最大频率栈
LeetCode_栈_困难_1106.解析布尔表达式
中等
✨LeetCode_单调队列_滑动窗口_中等_239.滑动窗口最大值
LeetCode_优先级队列_中等_373.查找和最小的 K 对数字
LeetCode_双端队列_贪心_中等_402.移掉 K 位数字
✨LeetCode_队列_中等_649.Dota2 参议院
LeetCode_优先级队列_回溯_659.分割数组为连续子序列
LeetCode_优先级队列_692.前K个高频单词
LeetCode_优先级队列_双指针_中等_870.优势洗牌
困难
✨LeetCode_优先级队列_困难_23.合并 K 个升序链表
简单
LeetCode_字符串_简单_14.最长公共前缀
LeetCode_字符串_简单_28.实现strStr()
LeetCode_字符串_简单_58.最后一个单词的长度
LeetCode_字符串_简单_67.二进制求和
LeetCode_字符串_简单_344.反转字符串
LeetCode_字符串_简单_387.字符串中的第一个唯一字符
LeetCode_字符串_简单_412.Fizz Buzz
LeetCode_字符串_简单_415.字符串相加
LeetCode_字符串_简单_551.学生出勤记录 I
LeetCode_字符串反转_简单_557.反转字符串中的单词 III
LeetCode_字符串_简单_1071.字符串的最大公因子
中等
LeetCode_字符串_中等_6.Z 字形变换
LeetCode_字符串_中等_8.字符串转换整数 (atoi)
LeetCode_字符串_中等_43.字符串相乘
✨LeetCode_字符串_中等_49.字母异位词分组
LeetCode_字符串_中等_151.颠倒字符串中的单词
LeetCode_字符串_中等_165.比较版本号
LeetCode_字符串_中等_468.验证 IP 地址
LeetCode_字符串_中等_647.回文子串
LeetCode_字符串_中等_816.模糊坐标
✨LeetCode_字符串_中等_1657.确定两个字符串是否接近
简单
LeetCode_哈希集合_双指针_简单_202.快乐数
LeetCode_哈希表_简单_205.同构字符串
LeetCode_哈希表_简单_290.单词规律
LeetCode_哈希表_简单_594.最长和谐子序列
LeetCode_哈希表_简单_599.两个列表的最小索引总和
LeetCode_哈希表_哈希集合_简单_819.最常见的单词
中等
LeetCode_哈希表_中等_12.整数转罗马数字
LeetCode_哈希表_中等_13.罗马数字转整数
✨LeetCode_哈希表_中等_128.最长连续序列
LeetCode_哈希表_滑动窗口_中等_187.重复的DNA序列
✨LeetCode_原地哈希_中等_442.数组中重复的数据
LeetCode_哈希表_排序_中等_451.根据字符出现频率排序
LeetCode_哈希表_中等_454.四数相加 II
LeetCode_哈希集合_排序_前缀树_中等_720.词典中最长的单词
LeetCode_哈希表_中等_811.子域名访问计数
LeetCode_哈希表_中等_817.链表组件
LeetCode_哈希表_中等_916.单词子集
困难
✨LeetCode_原地哈希_困难_41.缺失的第一个正数
LeetCode_哈希表_困难_149.直线上最多的点数
LeetCode_哈希表_前缀和_困难_2488.统计中位数为 K 的子数组
✨有关二叉树遍历的相关具体知识可以参考【算法】二叉树遍历这篇文章。
简单
✨LeetCode_二叉树_简单_94.二叉树的中序遍历
LeetCode_二叉树_简单_100.相同的树
✨LeetCode_二叉树_简单_101.对称二叉树
LeetCode_二叉树_动态规划_回溯算法_简单_104.二叉树的最大深度
LeetCode_二叉树_简单_111.二叉树的最小深度
✨LeetCode_二叉树_简单_112.路径总和
✨LeetCode_二叉树_简单_144.二叉树的前序遍历
✨LeetCode_二叉树_简单_145.二叉树的后序遍历
✨LeetCode_二叉树_简单_226.翻转二叉树
LeetCode_二叉树_简单_501.二叉搜索树中的众数
✨LeetCode_二叉树_简单_543.二叉树的直径
LeetCode_二叉树_简单_617.合并二叉树
LeetCode_二叉树_简单_965.单值二叉树
中等
✨LeetCode_二叉树_BFS_中等_102.二叉树的层序遍历
LeetCode_二叉树_BFS_中等_103. 二叉树的锯齿形层序遍历
✨LeetCode_二叉树_中等_105.从前序与中序遍历序列构造二叉树
✨LeetCode_二叉树_中等_106.从中序与后序遍历序列构造二叉树
LeetCode_二叉树_BFS_中等_107.二叉树的层序遍历 II
LeetCode_二叉树_中等_113.路径总和 II
✨LeetCode_二叉树_中等_114.二叉树展开为链表
LeetCode_二叉树_中等_116.填充每个节点的下一个右侧节点指针
LeetCode_二叉树_BFS_中等_117.填充每个节点的下一个右侧节点指针 II
LeetCode_二叉树_DFS_中等_129.求根节点到叶节点数字之和
✨LeetCode_二叉树_BFS_中等_199.二叉树的右视图
LeetCode_二叉树_中等_222.完全二叉树的节点个数
✨LeetCode_二叉树_中等_236.二叉树的最近公共祖先
LeetCode_二叉树_递归_动态规划_中等_337.打家劫舍 III
✨LeetCode_二叉树_前缀和_中等_437.路径总和 III
LeetCode_二叉树_中等_515.在每个树行中找最大值
LeetCode_二叉树_中等_623.在二叉树中增加一行
LeetCode_二叉树_中等_652.寻找重复的子树
LeetCode_二叉树_中等_654.最大二叉树
✨LeetCode_二叉树_中等_1372.二叉树中的最长交错路径
✨LeetCode_二叉树_中等_1448.统计二叉树中好节点的数目
LeetCode_二叉树_中等_剑指 Offer 26.树的子结构
困难
✨LeetCode_二叉树_困难_124.二叉树中的最大路径和
✨LeetCode_二叉树_困难_297.二叉树的序列化与反序列化
简单
✨LeetCode_二叉搜索树_简单_108.将有序数组转换为二叉搜索树
LeetCode_二叉搜索树_简单_530.二叉搜索树的最小绝对差
✨LeetCode_二叉搜索树_简单_700.二叉搜索树中的搜索
中等
LeetCode_二叉搜索树_中等_95.不同的二叉搜索树 II
LeetCode_二叉搜索树_中等_96.不同的二叉搜索树
✨LeetCode_二叉搜索树_中等_98.验证二叉搜索树
✨LeetCode_二叉搜索树_中等_230.二叉搜索树中第K小的元素
LeetCode_二叉搜索树_中等_235.二叉搜索树的最近公共祖先
LeetCode_二叉搜索树_中等_449.序列化和反序列化二叉搜索树
✨LeetCode_二叉搜索树_中等_450.删除二叉搜索树中的节点
LeetCode_二叉搜索树_中等_538.把二叉搜索树转换为累加树
困难
LeetCode_二叉搜索树_困难_1373.二叉搜索子树的最大键值和
简单
LeetCode_二叉平衡树_简单_110.平衡二叉树
简单
LeetCode_多叉树_简单_559.N 叉树的最大深度
LeetCode_多叉树_简单_589.N 叉树的前序遍历
LeetCode_多叉树_简单_590.N 叉树的后序遍历
中等
LeetCode_多叉树_中等_429.N 叉树的层序遍历
有关并查集的相关具体知识可以参考【数据结构】并查集这篇文章。
中等
LeetCode_并查集_DFS_中等_130.被围绕的区域
LeetCode_并查集_中等_399.除法求值
✨LeetCode_并查集_DFS_BFS_中等_547.省份数量
LeetCode_并查集_中等_990.等式方程的可满足性
LeetCode_并查集_DFS_中等_2316.统计无向图中无法互相到达点对数
有关前缀树的相关具体知识可以参考【数据结构】前缀树/字典树这篇文章。
中等
✨LeetCode_前缀树_中等_208.实现 Trie (前缀树)
LeetCode_前缀树_数据结构设计_中等_211.添加与搜索单词 - 数据结构设计
LeetCode_前缀树_贪心算法_中等_421.数组中两个数的最大异或值
LeetCode_前缀树_中等_648.单词替换
LeetCode_前缀树_数据结构设计_中等_677.键值映射
LeetCode_前缀树_排序_哈希集合_中等_720.词典中最长的单词
✨LeetCode_前缀树_中等_1268.搜索推荐系统
困难
LeetCode_前缀树_困难_212.单词搜索 II
LeetCode_前缀树_困难_1803.统计异或值在范围内的数对有多少
有关线段树的相关具体知识可以参考【数据结构】线段树这篇文章。
中等
LeetCode_线段树_中等_307.区域和检索 - 数组可修改
困难
LeetCode_线段树_困难_2569.更新数组后处理求和查询
有关 BFS 的相关具体知识可以参考【算法】广度优先遍历 (BFS)这篇文章。
简单
LeetCode_BFS_DFS_简单_1971.寻找图中是否存在路径
中等
LeetCode_BFS_二叉树_中等_102.二叉树的层序遍历
LeetCode_BFS_二叉树_BFS_中等_103.二叉树的锯齿形层序遍历
LeetCode_BFS_二叉树_中等_107.二叉树的层序遍历 II
LeetCode_BFS_二叉树_中等_117.填充每个节点的下一个右侧节点指针 II
✨LeetCode_BFS_拓扑排序_中等_210.课程表 II
LeetCode_BFS_中等_542.01 矩阵
LeetCode_BFS_并查集_DFS_中等_547.省份数量
LeetCode_BFS_中等_752. 打开转盘锁
LeetCode_BFS_回溯_中等_784.字母大小写全排列
LeetCode_BFS_DFS_中等_841.钥匙和房间
LeetCode_BFS_中等_934.最短的桥
✨LeetCode_多源 BFS_中等_994.腐烂的橘子
LeetCode_BFS_DFS_中等_1376.通知所有员工所需的时间
✨LeetCode_BFS_中等_1466.重新规划路线
✨LeetCode_BFS_中等_1926.迷宫中离入口最近的出口
困难
LeetCode_BFS_困难_773.滑动谜题
LeetCode_BFS_困难_864.获取所有钥匙的最短路径
LeetCode_多源 BFS_中等_2258.逃离火灾
有关 DFS 的相关具体知识可以参考【算法】深度优先搜索 (DFS)这篇文章。
简单
LeetCode_DFS_BFS_简单_1971.寻找图中是否存在路径
中等
LeetCode_DFS_并查集_中等_130.被围绕的区域
LeetCode_DFS_中等_200.岛屿数量
LeetCode_DFS_环检测_中等_207.课程表
LeetCode_DFS_中等_386.字典序排数
LeetCode_DFS_并查集_BFS_中等_547.省份数量
LeetCode_DFS_中等_695.岛屿的最大面积
LeetCode_DFS_中等_1020.飞地的数量
LeetCode_DFS_中等_1254.统计封闭岛屿的数目
LeetCode_DFS_BFS_中等_1376.通知所有员工所需的时间
LeetCode_DFS_中等_1905.统计子岛屿
LeetCode_DFS_中等_面试题 16.19.水域大小
困难
LeetCode_DFS_困难_1377.T 秒后青蛙的位置
有关拓扑排序的相关具体知识可以参考【算法】拓扑排序这篇文章。
中等
✨LeetCode_环检测_DFS_中等_207.课程表
✨LeetCode_拓扑排序_BFS_中等_210.课程表 II
LeetCode_拓扑排序_BFS_中等_1462.课程表 IV
困难
LeetCode_拓扑排序_困难_2603.收集树中金币
有关二分图判定的相关具体知识可以参考【算法】二分图判定这篇文章。
中等
LeetCode_二分图_中等_785.判断二分图
LeetCode_二分图_中等_886.可能的二分法
有关最小生成树算法的相关具体知识可以参考下面的两篇文章:
【算法】最小生成树——克鲁斯卡尔 (Kruskal) 算法
【算法】最小生成树——普利姆 (Prim) 算法
中等
LeetCode_Kruskal_中等_1584.连接所有点的最小费用
有关最短路径的相关算法可以参考下面的文章:
【算法】最短路径——迪杰斯特拉 (Dijkstra) 算法
【算法】最短路径——弗洛伊德 (Floyd) 算法
中等
LeetCode_dijkstra算法_中等_743.网络延迟时间
LeetCode_dijkstra算法_中等_1514.概率最大的路径
LeetCode_dijkstra算法_中等_1631.最小体力消耗路径
困难
LeetCode_dijkstra 算法_困难_882.细分图中的可到达节点
中等
LeetCode_图的遍历_中等_797. 所有可能的路径
中等
✨LeetCode_数据结构设计_中等_146.LRU 缓存
LeetCode_数据结构设计_中等_173.二叉搜索树迭代器
LeetCode_数据结构设计_前缀树_中等_211.添加与搜索单词 - 数据结构设计
LeetCode_数据结构设计_中等_341.扁平化嵌套列表迭代器
LeetCode_数据结构设计_中等_380.O(1) 时间插入、删除和获取随机元素
LeetCode_数据结构设计_前缀树_中等_677.键值映射
困难
✨LeetCode_数据结构设计_困难_295.数据流的中位数
✨LeetCode_数据结构设计_困难_460.LFU 缓存
LeetCode_数据结构设计_困难_895.最大频率栈
有关排序的相关具体知识可以参考【算法】内部排序这篇文章。
简单
✨LeetCode_排序_简单_88.合并两个有序数组
LeetCode_排序_简单_217.存在重复元素
LeetCode_排序_简单_242.有效的字母异位词
LeetCode_排序_简单_349.两个数组的交集
LeetCode_排序_简单_350.两个数组的交集II
中等
LeetCode_排序_中等_75.颜色分类
LeetCode_排序_中等_147.对链表进行插入排序
✨LeetCode_排序_中等_148.排序链表
LeetCode_排序_中等_179.最大数
✨LeetCode_排序_快速选择_中等_215.数组中的第K个最大元素
LeetCode_排序_中等_274.H 指数
LeetCode_排序_中等_324.摆动排序 II
✨LeetCode_排序_中等_347.前 K 个高频元素
LeetCode_排序_中等_406.根据身高重建队列
LeetCode_排序_哈希表_中等_451.根据字符出现频率排序
LeetCode_排序_快速选择_中位数_中等_462.最小操作次数使数组元素相等 II
LeetCode_排序_双指针_中等_524.通过删除字母匹配到字典里最长单词
LeetCode_排序_二分搜索_双指针_中等_658.找到 K 个最接近的元素
LeetCode_排序_哈希集合_前缀树_中等_720.词典中最长的单词
LeetCode_排序_中等_791.自定义字符串排序
LeetCode_排序_中等_912.排序数组
有关二分搜索的相关具体知识可以参考【算法】二分搜索这篇文章。
简单
LeetCode_二分搜索_简单_35.搜索插入位置
LeetCode_二分搜索_简单_69. x 的平方根
LeetCode_二分搜索_简单_367.有效的完全平方数
LeetCode_二分搜索_双指针_简单_392.判断子序列
LeetCode_二分搜索_简单_704.二分查找
中等
✨LeetCode_二分搜索_中等_33.搜索旋转排序数组
✨LeetCode_二分搜索_中等_34.在排序数组中查找元素的第一个和最后一个位置
LeetCode_二分搜索_中等_74.搜索二维矩阵
LeetCode_二分搜索_中等_81.搜索旋转排序数组 II
✨LeetCode_二分搜索_中等_153.寻找旋转排序数组中的最小值
LeetCode_二分搜索_困难_154.寻找旋转排序数组中的最小值 II
✨LeetCode_二分搜索_中等_162.寻找峰值
LeetCode_二分搜索_前缀和_滑动窗口_中等_209.长度最小的子数组
LeetCode_二分搜索_中等_240.搜索二维矩阵 II
LeetCode_二分搜索_双指针_中等_287. 寻找重复数
LeetCode_二分搜索_动态规划_耐心排序_中等_300.最长递增子序列
LeetCode_二分搜索_中等_378. 有序矩阵中第 K 小的元素
LeetCode_二分搜索_中等_436.寻找右区间
LeetCode_二分搜索_中等_540.有序数组中的单一元素
LeetCode_二分搜索_双指针_排序_中等_658.找到 K 个最接近的元素
LeetCode_二分搜索_滑动窗口_中等_713.乘积小于 K 的子数组
LeetCode_二分搜索_多指针_中等_792.匹配子序列的单词数
✨LeetCode_二分搜索_中等_875.爱吃香蕉的珂珂
LeetCode_二分搜索_中等_1011.在 D 天内送达包裹的能力
LeetCode_二分搜索_容斥原理_中等_1201.丑数 III
LeetCode_二分搜索_贪心_中等_1802.有界数组中指定下标处的最大值
LeetCode_二分搜索_中等_2594.修车的最少时间
困难
LeetCode_二分搜索_困难_4.寻找两个正序数组的中位数
LeetCode_二分搜索_动态规划_困难_354.俄罗斯套娃信封问题
LeetCode_二分搜索_数学_阶乘_困难_793.阶乘函数后 K 个零
LeetCode_二分搜索_容斥原理_困难_878.第 N 个神奇数字
有关递的相关具体知识可以参考【算法】递归这篇文章。
简单
LeetCode_递归_双指针_简单_206. 反转链表
中等
LeetCode_递归_回溯算法_中等_22.括号生成
LeetCode_递归_快速幂_中等_50.Pow(x, n)
LeetCode_递归_双指针_中等_92.反转链表 II
LeetCode_递归_中等_138.复制带随机指针的链表
LeetCode_递归_动态规划_二叉树_中等_337.打家劫舍 III
LeetCode_递归_中等_397.整数替换
LeetCode_递归_位运算_中等_779.第K个语法符号
困难
LeetCode_递归_双指针_困难_25.K 个一组翻转链表
简单
LeetCode_回溯_简单_17.电话号码的字母组合
LeetCode_回溯_动态规划_简单_104.二叉树的最大深度
中等
LeetCode_回溯_递归_中等_22.括号生成
✨LeetCode_回溯_中等_39.组合总和
LeetCode_回溯_中等_40.组合总和 II
✨LeetCode_回溯_中等_46.全排列
✨LeetCode_回溯_中等_77.组合
✨LeetCode_回溯_中等_78.子集
LeetCode_回溯_中等_79.单词搜索
LeetCode_回溯_中等_90.子集II
✨LeetCode_回溯_中等_93.复原 IP 地址
LeetCode_回溯_动态规划_中等_131.分割回文串
LeetCode_回溯_中等_216.组合总和 III
LeetCode_回溯_中等_473.火柴拼正方形
LeetCode_回溯_中等_491.递增子序列
LeetCode_回溯_动态规划_背包问题_中等_494.目标和
LeetCode_回溯_优先级队列_659.分割数组为连续子序列
LeetCode_回溯_中等_698.划分为 k 个相等的子集
LeetCode_回溯_BFS_中等_784.字母大小写全排列
LeetCode_回溯_中等_1774.最接近目标价格的甜点成本
LeetCode_回溯_中等_2305.公平分发饼干
困难
LeetCode_回溯_递归_困难_37.解数独
✨LeetCode_回溯_困难_51.N 皇后
LeetCode_回溯_困难_52.N皇后 II
LeetCode_回溯_困难_301.删除无效的括号
简单
✨LeetCode_动态规划_简单_53.最大子数组和
LeetCode_动态规划_简单_70.爬楼梯
LeetCode_动态规划_回溯算法_二叉树_简单_104.二叉树的最大深度
LeetCode_位运算_动态规划_简单_338.比特位计数
✨LeetCode_动态规划_简单_674.最长连续递增序列
LeetCode_动态规划_简单_1668.最大重复子字符串
中等
LeetCode_动态规划_中等_45.跳跃游戏II
LeetCode_动态规划_中等_91.解码方法
✨LeetCode_动态规划_中等_139.单词拆分
LeetCode_动态规划_中等_152.乘积最大子数组
✨LeetCode_动态规划_中等_198.打家劫舍
LeetCode_动态规划_中等_213.打家劫舍 II
LeetCode_动态规划_中等_264.丑数 II
✨LeetCode_动态规划_中等_279.完全平方数
✨LeetCode_动态规划_二分搜索_耐心排序_中等_300.最长递增子序列
LeetCode_动态规划_中等_313.超级丑数
✨LeetCode_动态规划_中等_322.零钱兑换
LeetCode_动态规划_递归_二叉树_中等_337.打家劫舍 III
LeetCode_动态规划_343.整数拆分
LeetCode_动态规划_中等_368.最大整除子集
LeetCode_动态规划_中等_377.组合总和 Ⅳ
LeetCode_动态规划_中等_673.最长递增子序列的个数
LeetCode_动态规划_中等_740.删除并获得点数
LeetCode_动态规划_中等_813.最大平均值和的分组
LeetCode_动态规划_中等_918.环形子数组的最大和
LeetCode_动态规划_中等_1105.填充书架
LeetCode_动态规划_中等_1027.最长等差数列
LeetCode_动态规划_中等_1653.使字符串平衡的最少删除次数
困难
LeetCode_动态规划_栈_困难_32.最长有效括号
LeetCode_动态规划_二分搜索_困难_354.俄罗斯套娃信封问题
LeetCode_动态规划_数位 dp_困难_902.最大为 N 的数字组合
LeetCode_动态规划_困难_940.不同的子序列 II
LeetCode_动态规划_数位 dp_困难_1012.至少有 1 位重复的数字
LeetCode_动态规划_困难_1235.规划兼职工作
LeetCode_动态规划_困难_1326.灌溉花园的最少水龙头数目
LeetCode_动态规划_困难_1691.堆叠长方体的最大高度
简单
✨LeetCode_动态规划_简单_121.买卖股票的最佳时机
中等
✨LeetCode_动态规划_中等_5.最长回文子串
✨LeetCode_动态规划_中等_62.不同路径
LeetCode_动态规划_中等_63.不同路径 II
✨LeetCode_动态规划_中等_64.最小路径和
LeetCode_动态规划_中等_97.交错字符串
LeetCode_动态规划_中等_120.三角形最小路径和
LeetCode_动态规划_中等_122.买卖股票的最佳时机 II
LeetCode_动态规划_中等_221. 最大正方形
✨LeetCode_动态规划_回溯_中等_131.分割回文串
LeetCode_动态规划_中等_309.最佳买卖股票时机含冷冻期
✨LeetCode_动态规划_背包问题_中等_416.分割等和子集
✨LeetCode_动态规划_背包问题_回溯_中等_494.目标和
✨LeetCode_动态规划_中等_516.最长回文子序列
✨LeetCode_动态规划_背包问题_中等_518.零钱兑换 II
✨LeetCode_动态规划_中等_583.两个字符串的删除操作
LeetCode_动态规划_中等_688.骑士在棋盘上的概率
LeetCode_动态规划_中等_714.买卖股票的最佳时机含手续费
LeetCode_动态规划_中等_718.最长重复子数组
LeetCode_动态规划_中等_764.最大加号标志
✨LeetCode_动态规划_中等_790.多米诺和托米诺平铺
LeetCode_动态规划_中等_808.分汤
LeetCode_动态规划_中等_931.下降路径最小和
✨LeetCode_动态规划_中等_1143.最长公共子序列
LeetCode_动态规划_中等_1277.统计全为 1 的正方形子矩阵
LeetCode_动态规划_中等_1911.最大子序列交替和
困难
LeetCode_动态规划_困难_10.正则表达式匹配
LeetCode_动态规划_困难_44.通配符匹配
✨LeetCode_动态规划_困难_72.编辑距离
LeetCode_动态规划_困难_123.买卖股票的最佳时机 III
LeetCode_动态规划_困难_188.买卖股票的最佳时机 IV
LeetCode_动态规划_困难_312.戳气球
LeetCode_动态规划_困难_552.学生出勤记录 II
LeetCode_动态规划_困难_801.使序列递增的最小交换次数
LeetCode_动态规划_困难_887.鸡蛋掉落
LeetCode_动态规划_困难_1388.3n 块披萨
简单
LeetCode_贪心算法_简单_409.最长回文串
LeetCode_贪心算法_简单_455.分发饼干
LeetCode_贪心算法_简单_605.种花问题
中等
✨LeetCode_贪心算法_中等_55.跳跃游戏
LeetCode_贪心算法_中等_134.加油站
✨LeetCode_贪心算法_中等_334.递增的三元子序列
LeetCode_贪心算法_双端队列_中等_402.移掉 K 位数字
LeetCode_贪心算法_前缀树_中等_421.数组中两个数的最大异或值
LeetCode_贪心算法_区间问题_中等_435.无重叠区间
LeetCode_贪心算法_中等_665.非递减数列
LeetCode_贪心算法_中等_738.单调递增的数字
LeetCode_贪心算法_中等_670.最大交换
✨LeetCode_贪心算法_中等_763.划分字母区间
LeetCode_贪心算法_中等_769.最多能完成排序的块
LeetCode_贪心算法_中等_846.一手顺子
LeetCode_贪心算法_中等_945.使数组唯一的最小增量
LeetCode_贪心算法_区间问题_中等_1024.视频拼接
LeetCode_贪心算法_中等_1775.通过最少操作次数使数组的和相等
LeetCode_贪心算法_中等_1785.构成特定和需要添加的最少元素
LeetCode_贪心算法_二分搜索_中等_1802.有界数组中指定下标处的最大值
✨LeetCode_贪心算法_中等_2542.最大子序列的分数
困难
LeetCode_贪心算法_困难_630.课程表 III
有关滑动窗口的相关具体知识可以参考【算法】滑动窗口这篇文章。
简单
LeetCode_滑动窗口_简单_219. 存在重复元素 II
LeetCode_滑动窗口_简单_643.子数组最大平均数 I
中等
LeetCode_滑动窗口_中等_3.无重复字符的最长子串
LeetCode_滑动窗口_哈希表_中等_187. 重复的DNA序列
LeetCode_滑动窗口_前缀和_二分搜索_中等_209.长度最小的子数组
LeetCode_滑动窗口_中等_220.存在重复元素III
LeetCode_滑动窗口_单调队列_中等_239.滑动窗口最大值
LeetCode_滑动窗口_中等_395.至少有 K 个重复字符的最长子串
LeetCode_滑动窗口_中等_424.替换后的最长重复字符
LeetCode_滑动窗口_中等_438.找到字符串中所有字母异位词
LeetCode_滑动窗口_中等_567.字符串的排列
LeetCode_滑动窗口_二分搜索_中等_713.乘积小于 K 的子数组
LeetCode_滑动窗口_中等_904.水果成篮
LeetCode_滑动窗口_前缀和_中等_930.和相同的二元子数组
LeetCode_滑动窗口_前缀和_中等_1004.最大连续1的个数 III
✨LeetCode_滑动窗口_中等_1493.删掉一个元素以后全为 1 的最长子数组
困难
LeetCode_滑动窗口_困难_30.串联所有单词的子串
✨LeetCode_滑动窗口_困难_76.最小覆盖子串
有关前缀和的相关具体知识可以参考【数据结构】前缀和数组这篇文章。
简单
LeetCode_前缀和_简单_303.区域和检索 - 数组不可变
LeetCode_前缀和_简单_1013.将数组分成和相等的三个部分
中等
LeetCode_前缀和_二分搜索_滑动窗口_中等_209.长度最小的子数组
✨LeetCode_左右乘积列表_中等_238.除自身以外数组的乘积
LeetCode_前缀和_中等_304.二维区域和检索 - 矩阵不可变
LeetCode_前缀和_二叉树_中等_437.路径总和 III
LeetCode_前缀和_哈希表_中等_523.连续的子数组和
LeetCode_前缀和_哈希表_中等_525.连续数组
✨LeetCode_前缀和_哈希表_中等_560.和为 K 的子数组
LeetCode_前缀和_滑动窗口_中等_930.和相同的二元子数组
LeetCode_前缀和_中等_1139.最大的以 1 为边界的正方形
LeetCode_前缀和_中等_1769.移动所有球到每个盒子所需的最小操作数
LeetCode_中等_面试题_17.05.字母与数字
困难
LeetCode_前缀和_困难_862.和至少为 K 的最短子数组
LeetCode_前缀和_哈希表_困难_2488.统计中位数为 K 的子数组
有关差分数组的相关具体知识可以参考【数据结构】差分数组这篇文章。
中等
LeetCode_差分数组_中等_1094.拼车
LeetCode_差分数组_中等_1109.航班预订统计
困难
✨LeetCode_离散化差分_困难_2251.花期内花的数目
有关区间调度算法的相关具体知识可以参考【算法】区间调度算法这篇文章。
中等
✨LeetCode_区间问题_中等_56.合并区间
LeetCode_区间问题_中等_57.插入区间
✨LeetCode_区间问题_贪心算法_中等_435.无重叠区间
LeetCode_区间问题_中等_452.用最少数量的箭引爆气球
LeetCode_区间问题_中等_795.区间子数组个数
LeetCode_区间问题_双指针_中等_986.区间列表的交集
LeetCode_区间问题_中等_1024.视频拼接
LeetCode_区间问题_中等_1288.删除被覆盖区间
LeetCode_区间问题_中等_1834.单线程 CPU
简单
LeetCode_Boyer-Moore投票算法_简单_169.多数元素
中等
LeetCode_Boyer-Moore 投票算法_中等_229.求众数 II
有关洗牌算法的相关具体知识可以参考【算法】洗牌算法这篇文章。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。