目录

  • 1.数学基础
    • 1.1.位运算
    • 1.2.其它
  • 2.数据结构
    • 2.1.线性表
      • 2.1.1.数组(双指针)
      • 2.1.2.链表(双指针)
      • 2.1.3.栈
      • 2.1.4.队列
      • 2.1.5.字符串
      • 2.1.6.哈希表/哈希集合
    • 2.2.树
      • 2.2.2.二叉树
        • 2.2.2.1.普通二叉树
        • 2.2.2.2.二叉搜索树
        • 2.2.2.3.平衡二叉树
      • 2.2.3.多叉树
      • 2.2.3.并查集
      • 2.3.4.前缀树/字典树
    • 2.3.图
      • 2.3.1.BFS
      • 2.3.2.DFS
      • 2.3.3.拓扑排序
      • 2.3.4.二分图
      • 2.3.5.最小生成树
      • 2.3.6.最短路径
      • 2.3.7.图的遍历
    • 2.4.数据结构设计
  • 3.基础算法/思想
    • 3.1.排序
    • 3.2.二分搜索
    • 3.3.递归
    • 3.4.回溯算法
    • 3.5.动态规划
      • 3.5.1.一维动态规划
      • 3.5.2.多维动态规划
    • 3.6.贪心算法
  • 4.其它算法/思想
    • 4.1.滑动窗口
    • 4.2.前缀和
    • 4.3.差分数组
    • 4.4.区间问题
    • 4.5.Boyer-Moore 投票算法
    • 4.6.洗牌算法

(1) 下面是本人在刷 LeetCode 算法题时制作的目录(持续更新),方便复习时查阅。
(2) 该目录主要是按照数学基础数据结构基础算法/思想其它算法/思想进行分类,并且在每个题型下面又分子题型以及简单、中等和困难这三个级别,主要注意的是一个题目可能涉及多种算法/思想,所以它可能在目录中重复出现,并且有些题目可能会有一些扩展说明。下面题目中高亮显示的表明该题比较重要/常见,可以多加关注。
(3) 在刷题时,有一些思路是借鉴别人的,此处给出一位大佬的算法整理笔记,大家可以点击此处进行查看。
(4) LeetCode 中有些题目的难度可能会随着时间而变化,所以下面题目的难度可能无法与 LeetCode 中一一对应。

1.数学基础

1.1.位运算

简单
LeetCode_位运算_简单_136.只出现一次的数字
LeetCode_位运算_简单_190.颠倒二进制位
LeetCode_位运算_简单_191.位1的个数
LeetCode_位运算_简单_231.2 的幂
LeetCode_位运算_简单_268.丢失的数字
LeetCode_位运算_简单_338.比特位计数
LeetCode_位运算_简单_405.数字转换为十六进制数
LeetCode_位运算_简单_461.汉明距离
LeetCode_位运算_简单_1684.统计一致字符串的数目

中等
LeetCode_位运算_中等_137.只出现一次的数字 II
LeetCode_位运算_中等_260.只出现一次的数字 III
LeetCode_位运算_中等_318.最大单词长度乘积
LeetCode_位运算_中等_371. 两整数之和
LeetCode_位运算_中等_477.汉明距离总和
LeetCode_位运算_递归_中等_779.第K个语法符号

困难
LeetCode_位运算_困难_805.数组的均值分割

1.2.其它

简单
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_进制转换_中等_1780.判断一个数字是否可以表示成三的幂的和

困难
LeetCode_数位枚举_困难_233.数字 1 的个数
LeetCode_矩形_困难_391.完美矩形
LeetCode_随机化_困难_710.黑名单中的随机数
LeetCode_容斥原理_二分搜索_困难_878.第 N 个神奇数字
LeetCode_数学推导_困难_891.子序列宽度之和


2.数据结构

2.1.线性表

2.1.1.数组(双指针)

简单
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_双指针_中等_80.删除有序数组中的重复项II
LeetCode_双指针_中等_189. 轮转数组
LeetCode_双指针_二分搜索_中等_287. 寻找重复数
LeetCode_双指针_中等_481.神奇字符串
LeetCode_双指针_排序_中等_524.通过删除字母匹配到字典里最长单词
LeetCode_双指针_中等_611.有效三角形的个数
LeetCode_双指针_中等_633.平方数之和
LeetCode_双指针_二分搜索_排序_中等_658.找到 K 个最接近的元素
LeetCode_双指针_中等_777.在LR字符串中交换相邻字符
LeetCode_多指针_二分搜索_中等_792.匹配子序列的单词数
LeetCode_双指针_中等_809.情感丰富的文字
LeetCode_双指针_优先级队列_中等_870.优势洗牌
LeetCode_数组_中等_915.分割数组
LeetCode_双指针_区间问题_中等_986.区间列表的交集
LeetCode_数组_中等_1620.网络信号最好的坐标
LeetCode_双指针_中等_1764.通过连接另一个数组的子数组得到一个数组
LeetCode_双指针_中等_1781.所有子字符串美丽值之和

困难
LeetCode_双指针_困难_42.接雨水
LeetCode_数组_困难_927.三等分


2.1.2.链表(双指针)

简单
LeetCode_双指针_简单_21.合并两个有序链表
LeetCode_双指针_简单_83.删除排序链表中的重复元素
LeetCode_双指针_简单_141.环形链表
LeetCode_双指针_简单_160.相交链表
LeetCode_双指针_递归_简单_206. 反转链表
LeetCode_双指针_简单_234.回文链表
LeetCode_节点交换_简单_237.删除链表中的节点
LeetCode_双指针_简单_876.链表的中间结点

中等
LeetCode_双指针_中等_2.两数相加
LeetCode_双指针_中等_19.删除链表的倒数第 N 个结点
LeetCode_双指针_中等_61. 旋转链表
LeetCode_双指针_递归_中等_92.反转链表 II
LeetCode_双指针_中等_142.环形链表II
LeetCode_双指针_中等_328.奇偶链表

困难
LeetCode_双指针_优先级队列_困难_23.合并K个升序链表
LeetCode_双指针_递归_困难_25.K 个一组翻转链表


2.1.3.栈

简单
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_栈_中等_1441.用栈操作构建数组

困难
LeetCode_栈_动态规划_困难_32.最长有效括号
LeetCode_单调栈_困难_84.柱状图中最大的矩形
LeetCode_单调栈_困难_85.最大矩形
LeetCode_栈_困难_227.基本计算器(不含乘除)
LeetCode_栈_困难_394. 字符串解码
LeetCode_数据结构设计_困难_895. 最大频率栈
LeetCode_栈_困难_1106.解析布尔表达式


2.1.4.队列

简单
LeetCode_队列_简单_225.用队列实现栈

中等
LeetCode_单调队列_滑动窗口_中等_239.滑动窗口最大值
LeetCode_优先级队列_中等_373.查找和最小的 K 对数字
LeetCode_双端队列_贪心_中等_402.移掉 K 位数字
LeetCode_优先级队列_回溯_659.分割数组为连续子序列
LeetCode_优先级队列_692.前K个高频单词
LeetCode_优先级队列_双指针_中等_870.优势洗牌

困难
LeetCode_优先级队列_双指针_困难_23.合并K个升序链表


2.1.5.字符串

简单
LeetCode_字符串_简单_14.最长公共前缀
LeetCode_字符串_简单_28.实现strStr()
LeetCode_字符串_简单_58.最后一个单词的长度
LeetCode_字符串_简单_344.反转字符串
LeetCode_字符串_简单_387. 字符串中的第一个唯一字符
LeetCode_字符串_简单_412.Fizz Buzz
LeetCode_字符串_简单_551.学生出勤记录 I
LeetCode_字符串反转_简单_557. 反转字符串中的单词 III

中等
LeetCode_字符串_中等_6.Z 字形变换
LeetCode_字符串_中等_8.字符串转换整数 (atoi)
LeetCode_字符串_中等_43.字符串相乘
LeetCode_字符串_中等_49.字母异位词分组
LeetCode_字符串_中等_151.颠倒字符串中的单词
LeetCode_字符串_中等_647.回文子串
LeetCode_字符串_中等_816.模糊坐标


2.1.6.哈希表/哈希集合

简单
LeetCode_哈希集合_双指针_简单_202. 快乐数
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_哈希表_困难_149. 直线上最多的点数


2.2.树

2.2.2.二叉树

2.2.2.1.普通二叉树

有关二叉树遍历的相关具体知识可以参考【算法】二叉树遍历这篇文章。

简单
LeetCode_二叉树_简单_94.二叉树的中序遍历
LeetCode_二叉树_简单_100.相同的树
LeetCode_二叉树_简单_101. 对称二叉树
LeetCode_二叉树_动态规划_回溯算法_简单_104.二叉树的最大深度
LeetCode_二叉树_简单_111.二叉树的最小深度
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_二叉树_中等_114.二叉树展开为链表
LeetCode_二叉树_中等_116.填充每个节点的下一个右侧节点指针
LeetCode_二叉树_中等_222.完全二叉树的节点个数
LeetCode_二叉树_中等_236.二叉树的最近公共祖先
LeetCode_二叉树_递归_动态规划_中等_337.打家劫舍 III
LeetCode_二叉树_前缀和_中等_437. 路径总和 III
LeetCode_二叉树_中等_515.在每个树行中找最大值
LeetCode_二叉树_中等_623.在二叉树中增加一行
LeetCode_二叉树_中等_652.寻找重复的子树
LeetCode_二叉树_中等_654.最大二叉树

困难
LeetCode_二叉树_困难_124. 二叉树中的最大路径和
LeetCode_二叉树_困难_297.二叉树的序列化与反序列化

2.2.2.2.二叉搜索树

简单
LeetCode_二叉搜索树_简单_108.将有序数组转换为二叉搜索树
LeetCode_二叉搜索树_简单_530.二叉搜索树的最小绝对差
LeetCode_二叉搜索树_简单_700.二叉搜索树中的搜索

中等
LeetCode_二叉搜索树_中等_95.不同的二叉搜索树 II
LeetCode_二叉搜索树_中等_96.不同的二叉搜索树
LeetCode_二叉搜索树_中等_98.验证二叉搜索树
LeetCode_二叉搜索树_中等_230.二叉搜索树中第K小的元素
LeetCode_二叉搜索树_中等_450.删除二叉搜索树中的节点
LeetCode_二叉搜索树_中等_538.把二叉搜索树转换为累加树

困难
LeetCode_二叉搜索树_困难_1373.二叉搜索子树的最大键值和

2.2.2.3.平衡二叉树

简单
LeetCode_二叉平衡树_简单_110.平衡二叉树


2.2.3.多叉树

简单
LeetCode_多叉树_简单_559.N 叉树的最大深度
LeetCode_多叉树_简单_589.N 叉树的前序遍历
LeetCode_多叉树_简单_590.N 叉树的后序遍历

中等
LeetCode_多叉树_中等_429.N 叉树的层序遍历


2.2.3.并查集

有关并查集的相关具体知识可以参考【数据结构】并查集这篇文章。

中等
LeetCode_并查集_中等_130.被围绕的区域
LeetCode_并查集_中等_399.除法求值
LeetCode_并查集_DFS_BFS_中等_547.省份数量
LeetCode_并查集_中等_990.等式方程的可满足性

困难
LeetCode_并查集_困难_765.情侣牵手


2.3.4.前缀树/字典树

有关前缀树的相关具体知识可以参考【数据结构】前缀树/字典树这篇文章。

中等
LeetCode_前缀树_中等_208. 实现 Trie (前缀树)
LeetCode_前缀树_贪心算法_中等_421.数组中两个数的最大异或值
LeetCode_前缀树_648.单词替换
LeetCode_前缀树_数据结构设计_中等_677.键值映射
LeetCode_前缀树_排序_哈希集合_中等_720.词典中最长的单词

困难
LeetCode_前缀树_困难_1803.统计异或值在范围内的数对有多少


2.3.图

2.3.1.BFS

有关 BFS 的相关具体知识可以参考【算法】广度优先遍历 (BFS)这篇文章。

简单
LeetCode_BFS_DFS_简单_1971.寻找图中是否存在路径

中等
LeetCode_BFS_二叉树_中等_102.二叉树的层序遍历
LeetCode_BFS_二叉树_BFS_中等_103.二叉树的锯齿形层序遍历
LeetCode_BFS_二叉树_中等_107.二叉树的层序遍历 II
LeetCode_BFS_拓扑排序_中等_210.课程表 II
LeetCode_BFS_中等_542.01 矩阵
LeetCode_BFS_并查集_DFS_中等_547.省份数量
LeetCode_BFS_中等_752. 打开转盘锁
LeetCode_BFS_回溯_中等_784.字母大小写全排列
LeetCode_BFS_中等_934.最短的桥

困难
LeetCode_BFS_困难_773.滑动谜题
LeetCode_BFS_困难_864.获取所有钥匙的最短路径


2.3.2.DFS

有关 DFS 的相关具体知识可以参考【算法】深度优先搜索 (DFS)这篇文章。

简单
LeetCode_DFS_BFS_简单_1971.寻找图中是否存在路径

中等
LeetCode_DFS_中等_200.岛屿数量
LeetCode_DFS_环检测_中等_207.课程表
LeetCode_DFS_中等_386.字典序排数
LeetCode_DFS_并查集_BFS_中等_547.省份数量
LeetCode_DFS_中等_695.岛屿的最大面积
LeetCode_DFS_中等_1020.飞地的数量
LeetCode_DFS_中等_1254. 统计封闭岛屿的数目
LeetCode_DFS_中等_1905. 统计子岛屿


2.3.3.拓扑排序

有关拓扑排序的相关具体知识可以参考【算法】拓扑排序这篇文章。

中等
LeetCode_环检测_DFS_中等_207.课程表
LeetCode_拓扑排序_BFS_中等_210. 课程表 II


2.3.4.二分图

有关二分图判定的相关具体知识可以参考【算法】二分图判定这篇文章。

中等
LeetCode_二分图_中等_785. 判断二分图
LeetCode_二分图_中等_886. 可能的二分法


2.3.5.最小生成树

有关克鲁斯卡尔算法的相关具体知识可以参考【算法】克鲁斯卡尔 (Kruskal) 算法这篇文章。

中等
LeetCode_Kruskal_中等_1584. 连接所有点的最小费用


2.3.6.最短路径

中等
LeetCode_dijkstra算法_中等_743. 网络延迟时间
LeetCode_dijkstra算法_中等_1514. 概率最大的路径
LeetCode_dijkstra算法_中等_1631. 最小体力消耗路径

困难
LeetCode_dijkstra 算法_困难_882.细分图中的可到达节点


2.3.7.图的遍历

中等
LeetCode_图的遍历_中等_797. 所有可能的路径


2.4.数据结构设计

中等
LeetCode_数据结构设计_中等_146.LRU 缓存
LeetCode_数据结构设计_中等_341.扁平化嵌套列表迭代器
LeetCode_数据结构设计_中等_380.O(1) 时间插入、删除和获取随机元素
LeetCode_数据结构设计_前缀树_中等_677.键值映射

困难
LeetCode_数据结构设计_困难_460.LFU 缓存
LeetCode_数据结构设计_困难_895.最大频率栈


3.基础算法/思想

3.1.排序

简单
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_排序_困难_164.最大间距


3.2.二分搜索

有关二分搜索的相关具体知识可以参考【算法】二分搜索这篇文章。

简单
LeetCode_二分搜索_简单_35.搜索插入位置
LeetCode_二分搜索_简单_69. x 的平方根
LeetCode_二分搜索_简单_367.有效的完全平方数
LeetCode_二分搜索_双指针_简单_392.判断子序列
LeetCode_二分搜索_简单_704.二分查找

中等
LeetCode_二分搜索_中等_33.搜索旋转排序数组
LeetCode_二分搜索_中等_34.在排序数组中查找元素的第一个和最后一个位置
LeetCode_二分搜索_中等_74.搜索二维矩阵
LeetCode_二分搜索_中等_81.搜索旋转排序数组 II
LeetCode_二分搜索_中等_153.寻找旋转排序数组中的最小值
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_二分搜索_贪心_中等_1802.有界数组中指定下标处的最大值

困难
LeetCode_二分搜索_困难_4.寻找两个正序数组的中位数
LeetCode_二分搜索_动态规划_困难_354.俄罗斯套娃信封问题
LeetCode_二分搜索_数学_阶乘_困难_793.阶乘函数后 K 个零
LeetCode_二分搜索_容斥原理_困难_878.第 N 个神奇数字


3.3.递归

有关递的相关具体知识可以参考【算法】递归这篇文章。

简单
LeetCode_递归_双指针_简单_206. 反转链表

中等
LeetCode_递归_回溯算法_中等_22.括号生成
LeetCode_递归_快速幂_中等_50.Pow(x, n)
LeetCode_递归_双指针_中等_92.反转链表 II
LeetCode_递归_动态规划_二叉树_中等_337.打家劫舍 III
LeetCode_递归_中等_397.整数替换
LeetCode_递归_位运算_中等_779.第K个语法符号

困难
LeetCode_递归_双指针_困难_25.K 个一组翻转链表


3.4.回溯算法

简单
LeetCode_回溯_简单_17.电话号码的字母组合
LeetCode_回溯_动态规划_简单_104.二叉树的最大深度

中等
LeetCode_回溯_递归_中等_22.括号生成
LeetCode_回溯_中等_39.组合总和
LeetCode_回溯_中等_40.组合总和 II
LeetCode_回溯_中等_46.全排列
LeetCode_回溯_中等_77.组合
LeetCode_回溯_中等_78.子集
LeetCode_回溯_中等_79.单词搜索
LeetCode_回溯_中等_90.子集II
LeetCode_回溯_动态规划_中等_131.分割回文串
LeetCode_回溯_中等_216.组合总和 III
LeetCode_回溯_中等_473.火柴拼正方形
LeetCode_回溯_中等_491.递增子序列
LeetCode_回溯_中等_494.目标和
LeetCode_回溯_优先级队列_659.分割数组为连续子序列
LeetCode_回溯_中等_698.划分为k个相等的子集
LeetCode_回溯_BFS_中等_784.字母大小写全排列
LeetCode_回溯_中等_1774.最接近目标价格的甜点成本

困难
LeetCode_回溯_递归_困难_37.解数独
LeetCode_回溯_困难_51.N 皇后
LeetCode_回溯_困难_52.N皇后 II
LeetCode_回溯_困难_301. 删除无效的括号


3.5.动态规划

3.5.1.一维动态规划

简单
LeetCode_动态规划_简单_53.最大子序和
LeetCode_动态规划_简单_70.爬楼梯
LeetCode_动态规划_回溯算法_二叉树_简单_104.二叉树的最大深度
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_动态规划_栈_困难_32.最长有效括号
LeetCode_动态规划_二分搜索_困难_354.俄罗斯套娃信封问题
LeetCode_动态规划_数位 dp_困难_902.最大为 N 的数字组合
LeetCode_动态规划_困难_940.不同的子序列 II
LeetCode_动态规划_困难_1235.规划兼职工作
LeetCode_动态规划_困难_1691.堆叠长方体的最大高度

3.5.2.多维动态规划

简单
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_动态规划_中等_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_动态规划_困难_10.正则表达式匹配
LeetCode_动态规划_困难_44.通配符匹配
LeetCode_动态规划_困难_72.编辑距离
LeetCode_动态规划_困难_123.买卖股票的最佳时机 III
LeetCode_动态规划_困难_188.买卖股票的最佳时机 IV
LeetCode_动态规划_困难_312.戳气球
LeetCode_动态规划_困难_552.学生出勤记录 II
LeetCode_动态规划_困难_801.使序列递增的最小交换次数
LeetCode_动态规划_困难_887.鸡蛋掉落


3.6.贪心算法

简单
LeetCode_贪心算法_简单_409.最长回文串

中等
LeetCode_贪心算法_中等_55.跳跃游戏
LeetCode_贪心算法_中等_134. 加油站
LeetCode_贪心算法_中等_334. 递增的三元子序列
LeetCode_贪心算法_双端队列_中等_402.移掉 K 位数字
LeetCode_贪心算法_前缀树_中等_421.数组中两个数的最大异或值
LeetCode_贪心算法_区间问题_中等_435.无重叠区间
LeetCode_贪心算法_中等_665.非递减数列
LeetCode_贪心算法_中等_738.单调递增的数字
LeetCode_贪心算法_中等_670.最大交换
LeetCode_贪心算法_中等_769.最多能完成排序的块
LeetCode_贪心算法_中等_846.一手顺子
LeetCode_贪心算法_中等_945.使数组唯一的最小增量
LeetCode_贪心算法_区间问题_中等_1024.视频拼接
LeetCode_贪心算法_中等_1775.通过最少操作次数使数组的和相等
LeetCode_贪心算法_中等_1785.构成特定和需要添加的最少元素
LeetCode_贪心_二分搜索_中等_1802.有界数组中指定下标处的最大值


4.其它算法/思想

4.1.滑动窗口

有关滑动窗口的相关具体知识可以参考【算法】滑动窗口这篇文章。

简单
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_滑动窗口_困难_30.串联所有单词的子串
LeetCode_滑动窗口_困难_76.最小覆盖子串


4.2.前缀和

有关前缀和的相关具体知识可以参考【算法】前缀和这篇文章。

简单
LeetCode_前缀和_简单_303.区域和检索 - 数组不可变
LeetCode_前缀和_简单_1013.将数组分成和相等的三个部分

中等
LeetCode_前缀和_二分搜索_滑动窗口_中等_209.长度最小的子数组
LeetCode_左右乘积列表_中等_238. 除自身以外数组的乘积
LeetCode_前缀和_中等_304.二维区域和检索 - 矩阵不可变
LeetCode_前缀和_二叉树_中等_437. 路径总和 III
LeetCode_前缀和_哈希表_中等_523.连续的子数组和
LeetCode_前缀和_哈希表_中等_525.连续数组
LeetCode_前缀和_中等_560.和为 K 的子数组
LeetCode_前缀和_滑动窗口_中等_930.和相同的二元子数组
LeetCode_前缀和_中等_1769.移动所有球到每个盒子所需的最小操作数

困难
LeetCode_前缀和_困难_862.和至少为 K 的最短子数组


4.3.差分数组

有关差分数组的相关具体知识可以参考【算法】差分数组这篇文章。

中等
LeetCode_差分数组_中等_1094.拼车
LeetCode_差分数组_中等_1109.航班预订统计


4.4.区间问题

中等
LeetCode_区间问题_中等_56.合并区间
LeetCode_区间问题_中等_57.插入区间
LeetCode_区间问题_贪心算法_中等_435.无重叠区间
LeetCode_区间问题_中等_452.用最少数量的箭引爆气球
LeetCode_区间问题_中等_795.区间子数组个数
LeetCode_区间问题_双指针_中等_986.区间列表的交集
LeetCode_区间问题_中等_1024.视频拼接
LeetCode_区间问题_中等_1288.删除被覆盖区间
LeetCode_区间问题_中等_1834.单线程 CPU

4.5.Boyer-Moore 投票算法

简单
LeetCode_Boyer-Moore投票算法_简单_169.多数元素

中等
LeetCode_Boyer-Moore 投票算法_中等_229.求众数 II

4.6.洗牌算法

有关洗牌算法的相关具体知识可以参考【算法】洗牌算法这篇文章。

中等
LeetCode_洗牌算法_中等_384.打乱数组

LeetCode算法刷题目录 (Java)相关推荐

  1. LeetCode算法刷题-URL化和重新排列字符串

    LeetCode刷题-URL化 面试题01.03 URL化 题目 URL化.编写一种方法,将字符串中的空格全部替换为%20.假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的"真实& ...

  2. leetcode算法刷题记录之罗马数字转整数

    题目描述: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符          数值 I             1 V             5 X             ...

  3. leetcode算法刷题记录表

    动态规划 题目 方法 日期 代码 509.斐波那契数列(简单) 递归.动态规划 2021.8.22 re 1137.第N个泰波那契数(简单) 递归.动态规划 2021.8.22 re 70.爬楼梯(简 ...

  4. LeetCode 牛客网 C++ 算法 刷题必备基础知识

    LeetCode 牛客网 C++ 算法 刷题必备基础知识 {ignore} 文章目录 LeetCode 牛客网 C++ 算法 刷题必备基础知识 {ignore} main综合模板 数组排序库 字符串库 ...

  5. 【秋招必备】LeetCode神器,算法刷题宝典.pdf

    Hello~最近正值各大厂校园秋招热季,今天向大家推荐关于「算法刷题宝典」的开源项目:力扣Cookbook. 获取方式: 点击下方链接,在消息对话框回复关键词:LeetCode  即可获取这本电子书! ...

  6. 2021新年算法小专题—2.股票买卖利润刷题(Java)

    本篇是股票买卖问题的更多题解,在上一篇文章中我们已经介绍了这一题型,实际上是一类dp问题,我们用自动机的思想去解决,在上一篇中我们以一道限定只买卖一次股票的题目为例进行了讲解,文章链接.下面我们继续完 ...

  7. LeetCode神器,算法刷题宝典.pdf

    Hello~今天向大家推荐关于「算法刷题宝典」的开源项目:力扣Cookbook. 获取方式: 点击下方链接,关注后在消息对话框回复关键词:LeetCode  即可获取这本电子书!   力扣 Cookb ...

  8. Github最强算法刷题笔记.pdf

    资料一 昨晚逛GitHub,无意中看到一位大佬(https://github.com/halfrost)的算法刷题笔记,感觉发现了宝藏!有些小伙伴可能已经发现了,但咱这里还是忍不住安利一波,怕有些小伙 ...

  9. 神了,无意中发现一位1500道的2021LeetCode算法刷题pdf笔记

    昨晚逛GitHub,无意中看到一位大佬的算法刷题笔记,感觉发现了宝藏!有些小伙伴可能已经发现了,但咱这里还是忍不住安利一波,怕有些小伙伴没有看到. 关于算法刷题的困惑和疑问也经常听朋友们提及.这份笔记 ...

最新文章

  1. qq分享组件 android,移动端,分享插件
  2. python学习笔记day08 文件功能详解
  3. 前端学习(2011)vue之电商管理系统电商系统之初步使用upload上传组件
  4. 常见的设计模式--单例模式
  5. 变分法理解2——基本方法
  6. 【Elasticsearch】ES写入满排查思路-内存溢出
  7. 一致性hash算法学习
  8. 网络基础知识(黑马教程笔记)-7-异步编程和Promise
  9. 手机酒店预订的革命之作——全新艺龙无线手机客户端测评
  10. 怎么管理好精力,让自己每天精力充沛
  11. 【第一组】第三次冲刺例会
  12. 知乎之问和小雷之解: 现在的年轻人为什么都那么着急?
  13. android手机整体规模,2021年Android手机市场规模
  14. 并发编程的艺术 读书笔记
  15. 我的第一本英文书读书心得
  16. 项目管理的十大知识领域
  17. mysql查询and和or同时使用
  18. Python pymysql 插入数据一直不成功
  19. 【更新中】苹果自家的as汇编器的特色风格(与微软masm汇编器语言风格的不同)
  20. 第10课 Altium Designer20(AD20)+VESC6.4实战教程:绘制原理图7(北冥有鱼)

热门文章

  1. 第十五章 VoIP 安全
  2. 修复WIN7系统开机黑屏,只剩下鼠标能动的问题。
  3. 去除 element-ui 中 Dialog 对话框遮罩层的方法
  4. linux常用基础命令整理
  5. gre计算机考试科目,GRE考试内容
  6. projspider.com恢复对猪八戒,一品威客网,软件项目交易网的支持
  7. 学生上课睡觉班主任怎么处理_学生上课睡觉老师该怎么办:高级教师教你一招...
  8. vue自定以鼠标样式cursor
  9. 微信公众账号请求token次数达到上限(reach max api daily quota limit rid: 616fc6cc-1ddc78a8-3ea0a470)
  10. UVa 1665 岛屿 (并查集)