62.不同路径 63.不用路径II 64.最小路径和 120.三角形最小路径和 931.下降路径最小和 1289.下降路径最小和II
72.编辑距离 132.分割回文串II 198.打家劫舍 213.打家劫舍II 221.最大正方形 309.最佳买卖股票时机含冷冻期 337.打家劫舍III 413.等差数列划分 1039.多边形三角剖分的最低分 1043.分割数组以得到最大和 1218. 最长定差子序列 1269.停在原地的方案数 1312.让字符串成为回文串的最少插入次数 面试题10- I.斐波那契数列
94.二叉树的中序遍历 102.二叉树的层次遍历 103.二叉树的锯齿形遍历 107.二叉树的层次遍历II 230.二叉搜索树中第K小的元素 501.二叉搜索树中的众数 663.均匀树划分 1339.分裂二叉树的最大乘积
100.相同的树 101.对称二叉树 1325.删除给定值的叶子节点 剑指offer 面试题07.重建二叉树 剑指offer 面试题26.树的子结构
1008.先序遍历构造二叉树 1305.两棵二叉搜索树中的所有元素 剑指offer 面试题68-I.二叉搜索树的最近公共祖先 剑指offer 面试题68-II.二叉树的最近公共祖先 面试题 04.05.合法二叉搜索树
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.获取你好友已观看的视频
关键在于:每一步都是最优解
122.买卖股票的最佳时机II 435.无重叠区间 452.用最少数量的箭引爆气球 763.划分字母区间 767.重构字符串 861.翻转矩阵后的得分 1081.不同字符的最小序列 1053.交换一次的先前排列 1247.交换字符使得字符串相等 1353.最多可以参加的会议数目
3.无重复字符的最长子串 76.最小覆盖子串 209.长度最小的子数组 239.滑动窗口最大值 567.字符串的排列 904.水果成篮 1004.最大连续1的个数III 1234. 替换子串得到平衡字符串 1297.子串的最大出现次数 1350.大小为K且平均值大于等于阈值的子数组数目 1358.包含所有三种字符的子字符串数目
关键在于:不合适就退回上一步 然后通过约束条件 减少时间复杂度
37.解数独 39.组合总和 40.组合总和II 46.全排列 47.全排列II 51.N皇后 77.组合 78.子集 90.子集II 131.分割回文串 216.组合总和III 691.贴纸拼词 842.将数组拆分成斐波那契数列 996.正方形数组的数目 1079.活字印刷 1219. 黄金矿工 1286. 字母组合迭代器 1239. 串联字符串的最大长度
1.两数之和 30.串联所有单词的子串 387.字符串中的第一个唯一字符 560.和为k的子数组 594.最长和谐子序列 720.词典中最长的单词 1248. 统计「优美子数组」 剑指offer 面试题03.数组中重复的数字
33. 搜索旋转排序数组 81.搜索旋转数组II 240.搜索二维矩阵II 1281.使结果不超过阈值的最小除数 剑指offer 面试题04.二维数组中的查找 剑指offer 面试题11.旋转数组的最小数字 剑指offer 面试题53-II.0~n-1中缺失的数字
1190.反转每对括号间的子串 1029.删除字符串中所有相邻重复项II 剑指offer 面试题09.用两个栈实现队列
525.连续数组 1292. 元素和小于等于阈值的正方形的最大边长
LCP 3.机器人大冒险 119.杨辉三角II 357.计算各个位数不同的数字个数 376.摆动序列 391.完美矩形 401.二进制手表 1072.按列翻转得到最大行数 1180. 统计只含单一字母的子串 1217. 玩筹码 1253.重构2行二进制序列 1262. 可被三整除的最大和 1267.统计参与通信的服务器 1328.破坏回文串 1344.时钟指针的夹角
80.删除排序数组中的重复项 II 165.比较版本号 243.最短单词距离 402.移掉K位数字 1156.单字符重复子串的最大长度
LCP 1.猜数字 1189.气球的最大数量 1221.分割平衡字符串 1288.有序数组中出现次数超过25%的元素 1316.不同的循环子字符串 面试题 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 |
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 |
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 |
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 |
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 |
560.和为k的子数组 | medium | Java |
567.字符串的排列 | medium | Java |
594.最长和谐子序列 | easy | Java |
663.均匀树划分 | 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 |
994.腐烂的橘子 | easy | Java |
996.正方形数组的数目 | hard | Java |
1004.最大连续1的个数III | medium | Java |
1008.先序遍历构造二叉树 | medium | Java |
1029.删除字符串中所有相邻重复项II | medium | Java |
1039.多边形三角剖分的最低分 | medium | Java |
1043.分割数组以得到最大和 | medium | Java |
1046.最后一块石头的重量 | easy | Java |
1053.交换一次的先前排列 | medium | 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 |
剑指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 面试题68-I.二叉搜索树的最近公共祖先 | easy | Java |
剑指offer 面试题68-II.二叉树的最近公共祖先 | easy | Java |
面试题 01.08.零矩阵 | medium | Java |
面试题 02.02.返回倒数第 k 个节点 | medium | Java |
面试题 04.05.合法二叉搜索树 | medium | Java |