LeetCode 刷题顺序
按照循序渐进的难度顺序把经典题目都做一遍,这样效率才是最高的!
数组
- 数组过于简单,但你该了解这些!
- 数组:704.二分查找
- 数组:27.移除元素
- 数组:977.有序数组的平方
- 数组:209.长度最小的子数组
- 数组:59.螺旋矩阵 II
- 数组:总结篇
链表
- 关于链表,你该了解这些!
- 链表:203.移除链表元素
- 链表:707.设计链表
- 链表:206.翻转链表
- 链表:24.两两交换链表中的节点
- 链表:19.删除链表的倒数第 N 个结点
- 链表:160.相交链表
- 链表:142.环形链表
- 链表:总结篇!
哈希表
- 关于哈希表,你该了解这些!
- 哈希表:242.有效的字母异位词
- 哈希表:1002.查找常用字符
- 哈希表:349.两个数组的交集
- 哈希表:202.快乐数
- 哈希表:1.两数之和
- 哈希表:454.四数相加 II
- 哈希表:383.赎金信
- 哈希表:15.三数之和
- 双指针法:18.四数之和
- 哈希表:总结篇!
字符串
- 字符串:344.反转字符串
- 字符串:541.反转字符串 II
- 字符串:151.翻转字符串里的单词
- 字符串:右旋字符串
- 帮你把 KMP 算法学个通透
- 字符串:459.重复的子字符串
- 字符串:总结篇!
双指针法
双指针法基本都是应用在数组,字符串与链表的题目上
- 数组:27.移除元素
- 字符串:344.反转字符串
- 字符串:替换数字
- 字符串:151.反转字符串里的单词
- 链表:206.翻转链表
- 链表:19.删除链表的倒数第 N 个结点
- 链表:链表相交
- 链表:142.环形链表
- 双指针:15.三数之和
- 双指针:18.四数之和
- 双指针:总结篇!
栈与队列
- 栈与队列:理论基础
- 栈与队列:232.用栈实现队列
- 栈与队列:225.用队列实现栈
- 栈与队列:20.有效的括号
- 栈与队列:1047.删除字符串中的所有相邻重复项
- 栈与队列:150.逆波兰表达式求值
- 栈与队列:239.滑动窗口最大值
- 栈与队列:总结篇!
二叉树
题目分类大纲如下:
- 关于二叉树,你该了解这些!
- 二叉树:二叉树的递归遍历
- 二叉树:二叉树的迭代遍历
- 二叉树:二叉树的统一迭代法
- 二叉树:二叉树的层序遍历
- 二叉树:226.翻转二叉树
- 本周小结!(二叉树)
- 二叉树:101.对称二叉树
- 二叉树:104.二叉树的最大深度
- 二叉树:111.二叉树的最小深度
- 二叉树:222.完全二叉树的节点个数
- 二叉树:110.平衡二叉树
- 二叉树:257.二叉树的所有路径
- 本周总结!(二叉树)
- 二叉树:二叉树中递归带着回溯
- 二叉树:404.左叶子之和
- 二叉树:513.找树左下角的值
- 二叉树:112.路径总和
- 二叉树:106.构造二叉树
- 二叉树:654.最大二叉树
- 本周小结!(二叉树)
- 二叉树:617.合并两个二叉树
- 二叉树:700.二叉搜索树登场!
- 二叉树:98.验证二叉搜索树
- 二叉树:530.搜索树的最小绝对差
- 二叉树:501.二叉搜索树中的众数
- 二叉树:236.公共祖先问题
- 本周小结!(二叉树)
- 二叉树:235.搜索树的最近公共祖先
- 二叉树:701.搜索树中的插入操作
- 二叉树:450.搜索树中的删除操作
- 二叉树:669.修剪二叉搜索树
- 二叉树:108.将有序数组转换为二叉搜索树
- 二叉树:538.把二叉搜索树转换为累加树
- 二叉树:总结篇!(需要掌握的二叉树技能都在这里了)
回溯算法
题目分类大纲如下:
- 关于回溯算法,你该了解这些!
- 回溯算法:77.组合
- 回溯算法:77.组合优化
- 回溯算法:216.组合总和 III
- 回溯算法:17.电话号码的字母组合
- 本周小结!(回溯算法系列一)
- 回溯算法:39.组合总和
- 回溯算法:40.组合总和 II
- 回溯算法:131.分割回文串
- 回溯算法:93.复原 IP 地址
- 回溯算法:78.子集
- 本周小结!(回溯算法系列二)
- 回溯算法:90.子集 II
- 回溯算法:491.递增子序列
- 回溯算法:46.全排列
- 回溯算法:47.全排列 II
- 本周小结!(回溯算法系列三)
- 回溯算法去重问题的另一种写法
- 回溯算法:332.重新安排行程
- 回溯算法:51.N 皇后
- 回溯算法:37.解数独
- 回溯算法总结篇
贪心算法
题目分类大纲如下:
- 关于贪心算法,你该了解这些!
- 贪心算法:455.分发饼干
- 贪心算法:376.摆动序列
- 贪心算法:53.最大子序和
- 本周小结!(贪心算法系列一)
- 贪心算法:122.买卖股票的最佳时机 II
- 贪心算法:55.跳跃游戏
- 贪心算法:45.跳跃游戏 II
- 贪心算法:1005.K 次取反后最大化的数组和
- 本周小结!(贪心算法系列二)
- 贪心算法:134.加油站
- 贪心算法:135.分发糖果
- 贪心算法:860.柠檬水找零
- 贪心算法:406.根据身高重建队列
- 本周小结!(贪心算法系列三)
- 贪心算法:406.根据身高重建队列(续集)
- 贪心算法:452.用最少数量的箭引爆气球
- 贪心算法:435.无重叠区间
- 贪心算法:763.划分字母区间
- 贪心算法:56.合并区间
- 本周小结!(贪心算法系列四)
- 贪心算法:738.单调递增的数字
- 贪心算法:968.监控二叉树
- 贪心算法:总结篇!(每逢总结必经典)
动态规划
- 关于动态规划,你该了解这些!
- 动态规划:509.斐波那契数
- 动态规划:70.爬楼梯
- 动态规划:746.使用最小花费爬楼梯
- 本周小结!(动态规划系列一)
- 动态规划:62.不同路径
- 动态规划:63.不同路径 II
- 动态规划:343.整数拆分
- 动态规划:96.不同的二叉搜索树
- 本周小结!(动态规划系列二)
背包问题系列
- 动态规划:01 背包理论基础
- 动态规划:01 背包理论基础(滚动数组)
- 动态规划:416.分割等和子集
- 动态规划:1049.最后一块石头的重量 II
- 本周小结!(动态规划系列三)
- 动态规划:494.目标和
- 动态规划:474.一和零
- 动态规划:完全背包总结篇
- 动态规划:518.零钱兑换 II
- 本周小结!(动态规划系列四)
- 动态规划:377.组合总和 Ⅳ
- 动态规划:70.爬楼梯(完全背包版本)
- 动态规划:322.零钱兑换
- 动态规划:279.完全平方数
- 本周小结!(动态规划系列五)
- 动态规划:139.单词拆分
- 动态规划:多重背包理论基础
- 背包问题总结篇
打家劫舍系列
- 动态规划:198.打家劫舍
- 动态规划:213.打家劫舍 II
- 动态规划:337.打家劫舍 III
股票系列
- 动态规划:121.买卖股票的最佳时机
- 本周小结(系列六)
- 动态规划:122.买卖股票的最佳时机 II
- 动态规划:123.买卖股票的最佳时机 III
- 动态规划:188.买卖股票的最佳时机 IV
- 动态规划:309.最佳买卖股票时机含冷冻期
- 本周小结(系列七)
- 动态规划:714.买卖股票的最佳时机含手续费
- 动态规划:股票系列总结篇
子序列系列
- 动态规划:300.最长递增子序列
- 动态规划:674.最长连续递增序列
- 动态规划:718.最长重复子数组
- 动态规划:1143.最长公共子序列
- 动态规划:1035.不相交的线
- 动态规划:53.最大子序和
- 动态规划:392.判断子序列
- 动态规划:115.不同的子序列
- 动态规划:583.两个字符串的删除操作
- 动态规划:72.编辑距离
- 编辑距离总结篇
- 动态规划:647.回文子串
- 动态规划:516.最长回文子序列
- 动态规划总结篇
单调栈
- 单调栈:739.每日温度
- 单调栈:496.下一个更大元素 I
- 单调栈:503.下一个更大元素 II
- 单调栈:42.接雨水
- 单调栈:84.柱状图中最大的矩形
图论
深搜广搜
- 图论:深度优先搜索理论基础
- 图论:797.所有可能的路径
- 图论:广度优先搜索理论基础
- 图论:200.岛屿数量.深搜版
- 图论:200.岛屿数量.广搜版
- 图论:695.岛屿的最大面积
- 图论:1020.飞地的数量
- 图论:130.被围绕的区域
- 图论:417.太平洋大西洋水流问题
- 图论:827.最大人工岛
- 图论:127. 单词接龙
- 图论:841.钥匙和房间
- 图论:463. 岛屿的周长
- 图论:并查集理论基础
- 图论:1971. 寻找图中是否存在路径
- 图论:684.冗余连接
- 图论:685.冗余连接 II