62.不同路径 63.不用路径II 64.最小路径和 120.三角形最小路径和 931.下降路径最小和 1289.下降路径最小和II 面试题 47. 礼物的最大价值
322.零钱兑换 416.分割等和子集 面试题 08.11.硬币
72.编辑距离 132.分割回文串II 198.打家劫舍 213.打家劫舍II 221.最大正方形 309.最佳买卖股票时机含冷冻期 337.打家劫舍III 413.等差数列划分 1039.多边形三角剖分的最低分 1043.分割数组以得到最大和 1218. 最长定差子序列 1269.停在原地的方案数 1312.让字符串成为回文串的最少插入次数 面试题10- I.斐波那契数列 面试题 17.16.按摩师
94.二叉树的中序遍历 102.二叉树的层次遍历 103.二叉树的锯齿形遍历 107.二叉树的层次遍历II 230.二叉搜索树中第K小的元素 501.二叉搜索树中的众数 543.二叉树的直径 663.均匀树划分 1339.分裂二叉树的最大乘积 面试题 面试题32-I.从上到下打印二叉树 面试题 面试题32-II.从上到下打印二叉树II 面试题 面试题32-III.从上到下打印二叉树III
100.相同的树 101.对称二叉树 1325.删除给定值的叶子节点 1372.二叉树中的最长交错路径 剑指offer 面试题07.重建二叉树 剑指offer 面试题26.树的子结构
1008.先序遍历构造二叉树 1305.两棵二叉搜索树中的所有元素 剑指offer 面试题68-I.二叉搜索树的最近公共祖先 剑指offer 面试题68-II.二叉树的最近公共祖先 面试题 04.05.合法二叉搜索树 面试题 33.二叉搜索树的后序遍历序列
108.将有序数组转换为二叉搜索树 110.平衡二叉树 112.路径总和 124.二叉树中的最大路径和
116.填充每个节点的下一个右侧节点指针 199.二叉树的右视图
2.两数之和 160.相交链表 1171.从链表中删去总和值为零的连续结点 剑指offer 面试题06.从尾到头打印链表 剑指offer 面试题25.合并两个排序的链表
141.环形链表 234.回文链表 面试题 02.02.返回倒数第 k 个节点
113.路径总和II 130.被围绕的区域 200.岛屿数量 417.太平洋大西洋水流问题 473.火柴拼正方形 695.岛屿的最大面积 785.判断二分图 934.最短的桥 1254.统计封闭岛屿的数目
542.01矩阵 994.腐烂的橘子 1293. 网格中的最短路径 1311.获取你好友已观看的视频
关键在于:每一步都是最优解
55.跳跃游戏 122.买卖股票的最佳时机II 435.无重叠区间 452.用最少数量的箭引爆气球 763.划分字母区间 767.重构字符串 861.翻转矩阵后的得分 942.增减字符串匹配 1081.不同字符的最小序列 1053.交换一次的先前排列 1247.交换字符使得字符串相等 1353.最多可以参加的会议数目
3.无重复字符的最长子串 76.最小覆盖子串 209.长度最小的子数组 239.滑动窗口最大值 567.字符串的排列 904.水果成篮 1004.最大连续1的个数III 1234. 替换子串得到平衡字符串 1297.子串的最大出现次数 1350.大小为K且平均值大于等于阈值的子数组数目 1358.包含所有三种字符的子字符串数目 1461.检查一个字符串是否包含所有长度为 K 的二进制子串 面试题 17.18.最短超串
关键在于:不合适就退回上一步 然后通过约束条件 减少时间复杂度
22.括号生成 37.解数独 39.组合总和 40.组合总和II 46.全排列 47.全排列II 51.N皇后 77.组合 78.子集 90.子集II 131.分割回文串 216.组合总和III 691.贴纸拼词 842.将数组拆分成斐波那契数列 996.正方形数组的数目 1079.活字印刷 1219. 黄金矿工 1286. 字母组合迭代器 1239. 串联字符串的最大长度 面试题 08.09.括号
1.两数之和 30.串联所有单词的子串 387.字符串中的第一个唯一字符 560.和为k的子数组 594.最长和谐子序列 720.词典中最长的单词 1248. 统计「优美子数组」 剑指offer 面试题03.数组中重复的数字
剑指offer 面试题57.和为s的两个数字 剑指offer 面试题57-II.和为s的连续正数序列 面试题 16.06.最小差
33. 搜索旋转排序数组 81.搜索旋转数组II 240.搜索二维矩阵II 1281.使结果不超过阈值的最小除数 剑指offer 面试题04.二维数组中的查找 剑指offer 面试题11.旋转数组的最小数字 剑指offer 面试题53-II.0~n-1中缺失的数字
347.前K个高频元素 1046.最后一块石头的重量 1438. 绝对差不超过限制的最长连续子数组
1190.反转每对括号间的子串 1029.删除字符串中所有相邻重复项II 剑指offer 面试题09.用两个栈实现队列 面试题31.栈的压入、弹出序列
525.连续数组 1292. 元素和小于等于阈值的正方形的最大边长
LCP 3.机器人大冒险 119.杨辉三角II 357.计算各个位数不同的数字个数 376.摆动序列 391.完美矩形 401.二进制手表 1071.字符串的最大公因子 1072.按列翻转得到最大行数 1180. 统计只含单一字母的子串 1217. 玩筹码 1253.重构2行二进制序列 1262. 可被三整除的最大和 1267.统计参与通信的服务器 1328.破坏回文串 1344.时钟指针的夹角 1395.统计作战单位数 1497.检查数组对是否可以被k整除 面试题 16.01.交换数字
155.最小栈 225.用队列实现栈 232.用栈实现队列 剑指offer 面试题59-II.队列的最大值
80.删除排序数组中的重复项 II 165.比较版本号 243.最短单词距离 402.移掉K位数字 409. 最长回文串 678.有效的括号字符串 1156.单字符重复子串的最大长度 面试题01.06.字符串压缩 面试题45. 把数组排成最小的数
LCP 1.猜数字 1103.分糖果II 1189.气球的最大数量 1221.分割平衡字符串 1288.有序数组中出现次数超过25%的元素 1316.不同的循环子字符串 1394. 找出数组中的幸运数 1725. 可以形成最大正方形的矩形数目 面试题 01.08.零矩阵 剑指offer 面试题05.替换空格
题目 | 难度 | 语言 |
---|---|---|
LCP 1.猜数字 | easy | Java |
LCP 2.化简分式 | easy | Java |
LCP 3.机器人大冒险 | medium | Java |
1.两数之和 | easy | Java |
2.两数之和 | medium | Java |
3.无重复字符的最长子串 | medium | Java |
15.三数之和 | medium | Java |
18.四数之和 | medium | Java |
22.括号生成 | medium | Java |
30.串联所有单词的子串 | hard | Java |
33. 搜索旋转排序数组 | medium | Java |
37.解数独 | medium | Java |
39.组合总和 | medium | Java |
40.组合总和II | medium | Java |
46.全排列 | medium | Java |
47.全排列II | medium | Java |
51.N皇后 | hard | Java |
55.跳跃游戏 | medium | Java |
56.合并区间 | medium | Java |
62.不同路径 | medium | Java |
63.不同路径II | medium | Java |
64.最小路径和 | medium | Java |
72.编辑距离 | hard | Java Python |
76.最小覆盖子串 | hard | Java |
77.组合 | medium | Java |
78.子集 | medium | Java |
80.删除排序数组中的重复项 II | medium | Java |
81.搜索旋转数组II | medium | Java |
90.子集II | medium | Java |
94.二叉树的中序遍历 | medium | Java Python |
95.不同的二叉搜索树II | medium | Java |
100.相同的树 | easy | Java |
101.对称二叉树 | easy | Java |
102.二叉树的层次遍历 | medium | Java |
103.二叉树的锯齿形遍历 | medium | Java |
107.二叉树的层次遍历II | easy | Java |
108.将有序数组转换为二叉搜索树 | easy | Java |
110.平衡二叉树 | easy | Java |
112.路径总和 | easy | Java |
113.路径总和II | medium | Java |
116.填充每个节点的下一个右侧节点指针 | medium | Java |
119.杨辉三角II | easy | Java |
120.三角形最小路径和 | medium | Java |
122.买卖股票的最佳时机II | easy | Java |
124.二叉树中的最大路径和 | hard | Java |
130.被围绕的区域 | medium | Java Python |
131.分割回文串 | medium | Java |
132.分割回文串II | hard | Java |
139.单词拆分 | medium | Java |
141.环形链表 | easy | Java |
146.LRU缓存机制 | medium | Java |
143.重排链表 | medium | Java |
153.寻找排序数组中的最小值 | easy | Java |
155.最小栈 | easy | Java |
165.比较版本号 | medium | Java |
160.相交链表 | easy | Java |
179.最大数 | medium | Java |
198.打家劫舍 | easy | Java |
199.二叉树的右视图 | medium | Java |
200.岛屿数量 | medium | Java |
203.移除链表元素 | easy | Java |
206.反转链表 | easy | Java |
207.课程表 | medium | Java |
209.长度最小的子数组 | medium | Java |
210.课程表II | medium | Java |
213.打家劫舍II | medium | Java |
216.组合总和III | medium | Java |
221.最大正方形 | medium | Java |
225.用队列实现栈 | easy | Java |
230.二叉搜索树中第K小的元素 | medium | Java |
232.用栈实现队列 | easy | Java |
234.回文链表 | easy | Java |
239.滑动窗口最大值 | hard | Java |
240.搜索二维矩阵II | medium | Java |
241.为运算表达式设计优先级 | medium | Java |
243.最短单词距离 | easy | Java |
253.会议室II | medium | Java |
300.最长上升子序列 | medium | Java |
304.二维区域和检索-矩阵不可变 | medium | Java |
309.最佳买卖股票时机含冷冻期 | medium | Java |
322.零钱兑换 | medium | Java |
337.打家劫舍III | medium | Java |
347.前K个高频元素 | medium | Java |
357.计算各个位数不同的数字个数 | medium | Java |
376.摆动序列 | medium | Java |
387.字符串中的第一个唯一字符 | easy | Java |
391.完美矩形 | hard | Java |
401.二进制手表 | easy | Java |
402.移掉K位数字 | medium | Java |
409. 最长回文串 | easy | Java |
413.等差数列划分 | medium | Java |
416.分割等和子集 | medium | Java |
417.太平洋大西洋水流问题 | medium | Java |
435.无重叠区间 | medium | Java |
452.用最少数量的箭引爆气球 | medium | Java |
473.火柴拼正方形 | medium | Java |
501.二叉搜索树中的众数 | easy | Java |
525.连续数组 | medium | Java |
542.01矩阵 | medium | Java |
543.二叉树的直径 | easy | Java |
560.和为k的子数组 | medium | Java |
567.字符串的排列 | medium | Java |
594.最长和谐子序列 | easy | Java |
663.均匀树划分 | medium | Java |
678.有效的括号字符串 | medium | Java |
691.贴纸拼词 | hard | Java |
695.岛屿的最大面积 | medium | Java |
720.词典中最长的单词 | easy | Java |
763.划分字母区间 | medium | Java |
767.重构字符串 | medium | Java |
785.判断二分图 | medium | Java |
842.将数组拆分成斐波那契数列 | medium | Java |
861.翻转矩阵后的得分 | medium | Java |
904.水果成篮 | medium | Java |
931.下降路径最小和 | medium | Java |
934.最短的桥 | medium | Java |
942.增减字符串匹配 | easy | Java |
990.等式方程的可满足性 | medium | Java |
994.腐烂的橘子 | easy | Java |
996.正方形数组的数目 | hard | Java |
1004.最大连续1的个数III | medium | Java |
1008.先序遍历构造二叉树 | medium | Java |
1103.分糖果 II | easy | Java |
1029.删除字符串中所有相邻重复项II | medium | Java |
1039.多边形三角剖分的最低分 | medium | Java |
1043.分割数组以得到最大和 | medium | Java |
1046.最后一块石头的重量 | easy | Java |
1053.交换一次的先前排列 | medium | Java |
1071.字符串的最大公因子 | easy | Java |
1072.按列翻转得到最大行数 | medium | Java |
1079.活字印刷 | medium | Java |
1081.不同字符的最小序列 | medium | Java |
1115. 交替打印FooBar | medium | Java |
1143.最长公共子序列 | medium | Java |
1156.单字符重复子串的最大长度 | medium | Java |
1171.从链表中删去总和值为零的连续结点 | medium | Java |
1180.统计只含单一字母的子串 | easy | Java |
1189.气球的最大数量 | easy | Java |
1190.反转每对括号间的子串 | medium | Java Python |
1208. 尽可能使字符串相等 | medium | Java |
1213. 三个有序数组的交集 | easy | Java |
1214. 查找两棵二叉搜索树之和 | medium | Java |
1217. 玩筹码 | easy | Java |
1218. 最长定差子序列 | medium | Java |
1219. 黄金矿工 | medium | Java |
1221.分割平衡字符串 | easy | Java |
1226.哲学家进餐 | medium | Java |
1234. 替换子串得到平衡字符串 | medium | Java |
1239. 串联字符串的最大长度 | medium | Java |
1247.交换字符使得字符串相等 | easy | Java |
1248. 统计「优美子数组」 | medium | Java |
1253.重构2行二进制序列 | medium | Java |
1254.统计封闭岛屿的数目 | medium | Java |
1262.可被三整除的最大和 | medium | Java |
1267.统计参与通信的服务器 | medium | Java |
1269.停在原地的方案数 | hard | Java |
1281.使结果不超过阈值的最小除数 | medium | Java |
1286. 字母组合迭代器 | medium | Java |
1288.有序数组中出现次数超过25%的元素 | easy | Java |
1289.下降路径最小和II | hard | Java |
1292. 元素和小于等于阈值的正方形的最大边长 | medium | Java |
1293. 网格中的最短路径 | hard | Java |
1297.子串的最大出现次数 | medium | Java |
1305.两棵二叉搜索树中的所有元素 | medium | Java |
1311.获取你好友已观看的视频 | medium | Java |
1312.让字符串成为回文串的最少插入次数 | medium | Java |
1316.不同的循环子字符串 | hard | Java |
1325.删除给定值的叶子节点 | medium | Java |
1328.破坏回文串 | medium | Java |
1339.分裂二叉树的最大乘积 | medium | Java |
1344.时钟指针的夹角 | medium | Java |
1350.大小为K且平均值大于等于阈值的子数组数目 | medium | Java |
1353.最多可以参加的会议数目 | medium | Java |
1358.包含所有三种字符的子字符串数目 | medium | Java |
1372.二叉树中的最长交错路径 | medium | Java |
1394. 找出数组中的幸运数 | easy | Java |
1395.统计作战单位数 | medium | Java |
1438. 绝对差不超过限制的最长连续子数组 | medium | Java |
1461.检查一个字符串是否包含所有长度为 K 的二进制子串 | medium | Java |
1497.检查数组对是否可以被k整除 | medium | Java |
1725. 可以形成最大正方形的矩形数目 | easy | Java |
剑指offer 面试题03.数组中重复的数字 | easy | Java |
剑指offer 面试题04.二维数组中的查找 | easy | Java |
剑指offer 面试题05.替换空格 | easy | Java |
剑指offer 面试题06.从尾到头打印链表 | easy | Java |
剑指offer 面试题07.重建二叉树 | medium | Java |
剑指offer 面试题09.用两个栈实现队列 | easy | Java |
剑指offer 面试题10- I.斐波那契数列 | easy | Java |
剑指offer 面试题11.旋转数组的最小数字 | easy | Java |
剑指offer 面试题25.合并两个排序的链表 | easy | Java |
剑指offer 面试题26.树的子结构 | medium | Java |
剑指offer 面试题53-II.0~n-1中缺失的数字 | easy | Java |
剑指offer 面试题57.和为s的两个数字 | easy | Java |
剑指offer 面试题57-II.和为s的连续正数序列 | easy | Java |
剑指offer 面试题59-II.队列的最大值 | easy | Java |
剑指offer 面试题68-I.二叉搜索树的最近公共祖先 | easy | Java |
剑指offer 面试题68-II.二叉树的最近公共祖先 | easy | Java |
面试题01.06.字符串压缩 | easy | Java |
面试题 01.08.零矩阵 | medium | Java |
面试题 02.02.返回倒数第 k 个节点 | medium | Java |
面试题 04.05.合法二叉搜索树 | medium | Java |
面试题 08.09.括号 | medium | Java |
面试题 08.11.硬币 | medium | Java |
面试题 16.01.交换数字 | medium | Java |
面试题 16.06.最小差 | medium | Java |
面试题 17.16.按摩师 | easy | Java |
面试题 17.18.最短超串 | medium | Java |
面试题18.删除链表的节点 | easy | Java |
面试题31.栈的压入、弹出序列 | medium | Java |
面试题 面试题32-I.从上到下打印二叉树 | medium | Java |
面试题 面试题32-II.从上到下打印二叉树II | easy | Java |
面试题 面试题32-III.从上到下打印二叉树III | medium | Java |
面试题 33.二叉搜索树的后序遍历序列 | medium | Java |
面试题 45. 把数组排成最小的数 | medium | Java |
面试题 47. 礼物的最大价值 | medium | Java |