数组
- 数组过于简单,但你该了解这些!
- 数组:二分查找
- 数组:移除元素
- 数组:序数组的平方
- 数组:长度最小的子数组
- 数组:螺旋矩阵II
- 数组:总结篇
链表
- 关于链表,你该了解这些!
- 链表:移除链表元素
- 链表:设计链表
- 链表:翻转链表
- 链表:两两交换链表中的节点
- 链表:删除链表的倒数第 N 个结点
- 链表:链表相交
- 链表:环形链表
- 链表:总结篇!
哈希表
- 关于哈希表,你该了解这些!
- 哈希表:有效的字母异位词
- 哈希表:查找常用字符
- 哈希表:两个数组的交集
- 哈希表:快乐数
- 哈希表:两数之和
- 哈希表:四数相加II
- 哈希表:赎金信
- 哈希表:三数之和
- 双指针法:四数之和
- 哈希表:总结篇!
字符串
- 字符串:反转字符串
- 字符串:反转字符串II
- 字符串:替换空格
- 字符串:翻转字符串里的单词
- 字符串:左旋转字符串
- 帮你把KMP算法学个通透
- 字符串:重复的子字符串
- 字符串:总结篇!
双指针法
双指针法基本都是应用在数组,字符串与链表的题目上
- 数组:移除元素
- 字符串:反转字符串
- 字符串:替换空格
- 字符串:翻转字符串里的单词
- 链表:翻转链表
- 链表:删除链表的倒数第 N 个结点
- 链表:链表相交
- 链表:环形链表
- 双指针:三数之和
- 双指针:四数之和
- 双指针:总结篇!
栈与队列
- 栈与队列:来看看栈和队列不为人知的一面
- 栈与队列:用栈实现队列
- 栈与队列:用队列实现栈
- 栈与队列:有效的括号
- 栈与队列:删除字符串中的所有相邻重复项
- 栈与队列:逆波兰表达式求值
- 栈与队列:滑动窗口最大值
- 栈与队列:前K个高频元素
- 栈与队列:总结篇!
二叉树
题目分类大纲如下:
- 关于二叉树,你该了解这些!
- 二叉树:二叉树的递归遍历
- 二叉树:二叉树的迭代遍历
- 二叉树:二叉树的统一迭代法
- 二叉树:二叉树的层序遍历
- 二叉树:翻转二叉树
- 本周小结!(二叉树)
- 二叉树:对称二叉树
- 二叉树:二叉树的最大深度
- 二叉树:二叉树的最小深度
- 二叉树:完全二叉树的节点个数
- 二叉树:平衡二叉树
- 二叉树:二叉树的所有路径
- 本周总结!二叉树系列二
- 二叉树:二叉树中递归带着回溯
- 二叉树:左叶子之和
- 二叉树:找树左下角的值
- 二叉树:路径总和
- 二叉树:构造二叉树
- 二叉树:最大二叉树
- 本周小结!(二叉树系列三)
- 二叉树:合并两个二叉树
- 二叉树:二叉搜索树登场!
- 二叉树:验证二叉搜索树
- 二叉树:搜索树的最小绝对差
- 二叉树:二叉搜索树中的众数
- 二叉树:公共祖先问题
- 本周小结!(二叉树系列四)
- 二叉树:搜索树的最近公共祖先
- 二叉树:搜索树中的插入操作
- 二叉树:搜索树中的删除操作
- 二叉树:修剪一棵搜索树
- 二叉树:构造一棵搜索树
- 二叉树:搜索树转成累加树
- 二叉树:总结篇!(需要掌握的二叉树技能都在这里了)
回溯算法
题目分类大纲如下:
- 关于回溯算法,你该了解这些!
- 回溯算法:组合问题
- 回溯算法:组合问题再剪剪枝
- 回溯算法:求组合总和!
- 回溯算法:电话号码的字母组合
- 本周小结!(回溯算法系列一)
- 回溯算法:求组合总和(二)
- 回溯算法:求组合总和(三)
- 回溯算法:分割回文串
- 回溯算法:复原IP地址
- 回溯算法:求子集问题!
- 本周小结!(回溯算法系列二)
- 回溯算法:求子集问题(二)
- 回溯算法:递增子序列
- 回溯算法:排列问题!
- 回溯算法:排列问题(二)
- 本周小结!(回溯算法系列三)
- 回溯算法去重问题的另一种写法
- 回溯算法:重新安排行程
- 回溯算法:N皇后问题
- 回溯算法:解数独
- 一篇总结带你彻底搞透回溯算法!
贪心算法
题目分类大纲如下:
- 关于贪心算法,你该了解这些!
- 贪心算法:分发饼干
- 贪心算法:摆动序列
- 贪心算法:最大子序和
- 本周小结!(贪心算法系列一)
- 贪心算法:买卖股票的最佳时机II
- 贪心算法:跳跃游戏
- 贪心算法:跳跃游戏II
- 贪心算法:K次取反后最大化的数组和
- 本周小结!(贪心算法系列二)
- 贪心算法:加油站
- 贪心算法:分发糖果
- 贪心算法:柠檬水找零
- 贪心算法:根据身高重建队列
- 本周小结!(贪心算法系列三)
- 贪心算法:根据身高重建队列(续集)
- 贪心算法:用最少数量的箭引爆气球
- 贪心算法:无重叠区间
- 贪心算法:划分字母区间
- 贪心算法:合并区间
- 本周小结!(贪心算法系列四)
- 贪心算法:单调递增的数字
- 贪心算法:买卖股票的最佳时机含手续费
- 贪心算法:我要监控二叉树!
- 贪心算法:总结篇!(每逢总结必经典)
动态规划
- 关于动态规划,你该了解这些!
- 动态规划:斐波那契数
- 动态规划:爬楼梯
- 动态规划:使用最小花费爬楼梯
- 本周小结!(动态规划系列一)
- 动态规划:不同路径
- 动态规划:不同路径还不够,要有障碍!
- 动态规划:整数拆分,你要怎么拆?
- 动态规划:不同的二叉搜索树
- 本周小结!(动态规划系列二)
背包问题系列:
- 动态规划:关于01背包问题,你该了解这些!
- 动态规划:关于01背包问题,你该了解这些!(滚动数组)
- 动态规划:分割等和子集可以用01背包!
- 动态规划:最后一块石头的重量 II
- 本周小结!(动态规划系列三)
- 动态规划:目标和!
- 动态规划:一和零!
- 动态规划:关于完全背包,你该了解这些!
- 动态规划:给你一些零钱,你要怎么凑?
- 本周小结!(动态规划系列四)
- 动态规划:Carl称它为排列总和!
- 动态规划:以前我没得选,现在我选择再爬一次!
- 动态规划: 给我个机会,我再兑换一次零钱
- 动态规划:一样的套路,再求一次完全平方数
- 本周小结!(动态规划系列五)
- 动态规划:单词拆分
- 动态规划:关于多重背包,你该了解这些!
- 听说背包问题很难? 这篇总结篇来拯救你了
打家劫舍系列:
- 动态规划:开始打家劫舍!
- 动态规划:继续打家劫舍!
- 动态规划:还要打家劫舍!
股票系列:
- 动态规划:买卖股票的最佳时机
- 动态规划:本周我们都讲了这些(系列六)
- 动态规划:买卖股票的最佳时机II
- 动态规划:买卖股票的最佳时机III
- 动态规划:买卖股票的最佳时机IV
- 动态规划:最佳买卖股票时机含冷冻期
- 动态规划:本周我们都讲了这些(系列七)
- 动态规划:买卖股票的最佳时机含手续费
- 动态规划:股票系列总结篇
子序列系列:
- 动态规划:最长递增子序列
- 动态规划:最长连续递增序列
- 动态规划:最长重复子数组
- 动态规划:最长公共子序列
- 动态规划:不相交的线
- 动态规划:最大子序和
- 动态规划:判断子序列
- 动态规划:不同的子序列
- 动态规划:两个字符串的删除操作
- 动态规划:编辑距离
- 为了绝杀编辑距离,Carl做了三步铺垫,你都知道么?
- 动态规划:回文子串
- 动态规划:最长回文子序列
- 动态规划总结篇
单调栈
- 单调栈:每日温度
- 单调栈:下一个更大元素I
- 单调栈:下一个更大元素II
- 单调栈:接雨水
- 单调栈:柱状图中最大的矩形
--------------------------------------------------------------------------------------------------------------------------------
补充题目
以上题目是重中之重,大家至少要刷两遍以上才能彻底理解,如果熟练以上题目之后还在找其他题目练手,可以再刷以下题目:
这些题目很不错,但有的题目是和刷题攻略类似的,有的题解后面还会适当补充,所以我还没有将其纳入到刷题攻略。一些题解等日后我完善一下,再纳入到刷题攻略。
数组
- 1365.有多少小于当前数字的数字
- 941.有效的山脉数组 (双指针)
- 1207.独一无二的出现次数 数组在哈希法中的经典应用
- 283.移动零 【数组】【双指针】
- 189.旋转数组
- 724.寻找数组的中心索引
- 34.在排序数组中查找元素的第一个和最后一个位置 (二分法)
- 922.按奇偶排序数组II
- 35.搜索插入位置
链表
- 24.两两交换链表中的节点
- 234.回文链表
- 143.重排链表【数组】【双向队列】【直接操作链表】
- 141.环形链表
- 160.相交链表
哈希表
- 205.同构字符串:【哈希表的应用】
字符串
- 925.长按键入 模拟匹配
- 0844.比较含退格的字符串【栈模拟】【空间更优的双指针】
二叉树
- 129.求根到叶子节点数字之和
- 1382.将二叉搜索树变平衡 构造平衡二叉搜索树
- 100.相同的树 同101.对称二叉树 一个思路
- 116.填充每个节点的下一个右侧节点指针
回溯算法
- 52.N皇后II
贪心
- 649.Dota2参议院 有难度
- 1221.分割平衡字符 简单贪心
动态规划
- 5.最长回文子串 和647.回文子串 差不多是一样的
- 132.分割回文串II 与647.回文子串和 5.最长回文子串 很像
- 673.最长递增子序列的个数
图论
- 463.岛屿的周长 (模拟)
- 841.钥匙和房间 【有向图】dfs,bfs都可以
- 127.单词接龙 广搜
并查集
- 684.冗余连接 【并查集基础题目】
- 685.冗余连接II【并查集的应用】
模拟
- 657.机器人能否返回原点
- 31.下一个排列
位运算
- 1356.根据数字二进制下1的数目排序
算法模板
各类基础算法模板