chenxi-xuan / leetcode-master

LeetCode 刷题攻略:配思维导图,各个类型的经典题目刷题顺序、经典算法模板,以及详细图解和视频题解。这里精选的题目都不是孤立的,而是由浅入深一脉相承的,相信只要按照刷题攻略上的顺序来学习,一定会有所收获!给个star支持一下吧!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

目录:

算法面试思维导图

算法面试知识大纲

B站算法视频讲解

(持续更新中....)

LeetCode 刷题攻略

不少同学和我反应LeetCode 刷题攻略这一栏没有了,首先感谢大家对本仓库的关注!因为我发现一些公众号抄袭我的Github,所以我把刷题攻略隐藏了,但是很多同学就看不到刷题顺序了,为了大家可以继续学习,我把算法精选文章的顺序整理了,和刷题攻略顺序一致的,文章顺序即刷题顺序,而且比刷题攻略更全!感谢大家的支持,这个仓库我每天都会更新的

刷题顺序:建议先从同一类型里题目开始刷起,同一类型里再从简单到中等到困难刷起,题型顺序建议:数组-> 链表-> 哈希表->字符串->栈与队列->树->回溯->贪心->动态规划->图论

目前大家可以按照下面的「算法文章精选」顺序来刷,里面都是各个类型的经典题目而且题目顺序都是精心设计的,初学者可以按照这个顺序来刷题,算法老手可以按照这个list查缺补漏!

同时这份刷题列表也在公众号「代码随想录」左下角的「算法汇总」里,方便大家用手机查看,用手机看的好处可以看到每篇文章下都有很多录友(代码随想录的朋友们)的留言,录友会总结每篇文章的重点,如果文章有一些笔误的话,留言区也会及时纠正,所以刷一下文章留言区会对理解知识点非常有帮助!而且公众号更新要比Github早2-3天。

赶紧去公众号「代码随想录」里看看吧,你会发现相见恨晚!

算法文章精选

(持续更新中....)

算法模板

各类基础算法模板

LeetCode 最强题解:

题目 类型 难度 解题方法
0001.两数之和 数组 简单 暴力 哈希
0015.三数之和 数组 中等 双指针 哈希
0017.电话号码的字母组合 回溯 中等 回溯
0018.四数之和 数组 中等 双指针
0019.删除链表的倒数第N个节点 链表 中等 双指针
0020.有效的括号 简单
0021.合并两个有序链表 链表 简单 模拟
0024.两两交换链表中的节点 链表 中等 模拟
0026.删除排序数组中的重复项 数组 简单 暴力 快慢指针/快慢指针
0027.移除元素 数组 简单 暴力 双指针/快慢指针/双指针
0028.实现strStr() 字符串 简单 KMP
0031.下一个排列 数组 中等 模拟 这道题目还是有难度的
0034.在排序数组中查找元素的第一个和最后一个位置 数组 中等 二分查找比35.搜索插入位置难一些
0035.搜索插入位置 数组 简单 暴力 二分
0037.解数独 回溯 困难 回溯
0039.组合总和 数组/回溯 中等 回溯
0040.组合总和II 数组/回溯 中等 回溯
0042.接雨水 数组/栈/双指针 困难 双指针 单调栈 动态规划
0045.跳跃游戏II 贪心 困难 贪心
0046.全排列 回溯 中等 回溯
0047.全排列II 回溯 中等 回溯
0051.N皇后 回溯 困难 回溯
0052.N皇后II 回溯 困难 回溯
0053.最大子序和 数组 简单 暴力 贪心 动态规划 分治
0055.跳跃游戏 数组 中等 贪心 经典题目
0056.合并区间 数组 中等 贪心 以为是模拟题,其实是贪心
0057.插入区间 数组 困难 模拟 是一道数组难题
0059.螺旋矩阵II 数组 中等 模拟
0062.不同路径 数组、动态规划 中等 深搜 动态规划 数论
0070.爬楼梯 动态规划 简单 动态规划 dp里求排列
0077.组合 回溯 中等 回溯
0078.子集 回溯/数组 中等 回溯
0083.删除排序链表中的重复元素 链表 简单 模拟
0084.柱状图中最大的矩形 数组 困难 单调栈
0090.子集II 回溯/数组 中等 回溯
0093.复原IP地址 回溯 中等 回溯
0094.二叉树的中序遍历 中等 递归 迭代/栈
0098.验证二叉搜索树 中等 递归
0100.相同的树 简单 递归
0101.对称二叉树 简单 递归 迭代/队列/栈 和100. 相同的树 相似
0102.二叉树的层序遍历 中等 广度优先搜索/队列
0104.二叉树的最大深度 简单 递归 迭代/队列/BFS
0105.从前序与中序遍历序列构造二叉树 二叉树 中等 递归
0106.从中序与后序遍历序列构造二叉树 二叉树 中等 递归 根据数组构造二叉树
0107.二叉树的层次遍历II 简单 广度优先搜索/队列/BFS
0108.将有序数组转换为二叉搜索树 二叉搜索树 中等 递归 迭代 通过递归函数返回值构造树
0110.平衡二叉树 二叉树 简单 递归
0111.二叉树的最小深度 二叉树 简单 递归 队列/BFS
0112.路径总和 二叉树树 简单 深度优先搜索/递归 回溯 思考递归函数什么时候需要返回值
0113.路径总和II 二叉树树 简单 深度优先搜索/递归 回溯
0116.填充每个节点的下一个右侧节点指针 二叉树 中等 递归 迭代/广度优先搜索
0117.填充每个节点的下一个右侧节点指针II 二叉树 中等 递归 迭代/广度优先搜索
0122.买卖股票的最佳时机II 贪心 简单 贪心
0127.单词接龙 广度优先搜索 中等 广度优先搜索
0129.求根到叶子节点数字之和 二叉树 中等 递归/回溯 递归里隐藏着回溯,和113.路径总和II类似
0131.分割回文串 回溯 中等 回溯
0135.分发糖果 贪心 困难 贪心好题目
0139.单词拆分 动态规划 中等 完全背包 回溯法
0141.环形链表 链表 简单 快慢指针/双指针
0142.环形链表II 链表 中等 快慢指针/双指针
0143.重排链表 链表 中等 快慢指针/双指针 也可以用数组,双向队列模拟,考察链表综合操作的好题
0144.二叉树的前序遍历 中等 递归 迭代/栈
0145.二叉树的后序遍历 困难 递归 迭代/栈
0147.对链表进行插入排序 链表 中等 模拟 考察链表综合操作
0150.逆波兰表达式求值 中等
0151.翻转字符串里的单词 字符串 中等 模拟/双指针
0155.最小栈 简单
0199.二叉树的右视图 二叉树 中等 广度优先遍历/队列
0202.快乐数 哈希表 简单 哈希
0203.移除链表元素 链表 简单 模拟 虚拟头结点
0205.同构字符串 哈希表 简单 哈希
0206.翻转链表 链表 简单 双指针法 递归
0209.长度最小的子数组 数组 中等 暴力 滑动窗口
0216.组合总和III 数组/回溯 中等 回溯算法
0219.存在重复元素II 哈希表 简单 哈希
0222.完全二叉树的节点个数 简单 递归
0225.用队列实现栈 队列 简单 队列
0226.翻转二叉树 二叉树 简单 递归 迭代
0232.用栈实现队列 简单
0235.二叉搜索树的最近公共祖先 二叉搜索树 简单 递归 迭代
0236.二叉树的最近公共祖先 二叉树 中等 递归/回溯 与其说是递归,不如说是回溯
0237.删除链表中的节点 链表 简单 原链表移除 添加虚拟节点 递归
0239.滑动窗口最大值 滑动窗口/队列 困难 单调队列
0242.有效的字母异位词 哈希表 简单 哈希
0257.二叉树的所有路径 简单 递归/回溯
0283.移动零 数组 简单 双指针 和 27.移除元素 一个套路
0300.最长上升子序列 动态规划 中等 动态规划
0316.去除重复字母 贪心/字符串 中等 单调栈 这道题目处理的情况比较多,属于单调栈中的难题
0332.重新安排行程 深度优先搜索/回溯 中等 深度优先搜索/回溯算法
0343.整数拆分 动态规划/贪心 中等 动态规划
0344.反转字符串 字符串 简单 双指针
0347.前K个高频元素 哈希/堆/优先级队列 中等 哈希/优先级队列
0349.两个数组的交集 哈希表 简单 哈希
0350.两个数组的交集II 哈希表 简单 哈希
0377.组合总和Ⅳ 动态规划 中等 完全背包 求排列
0383.赎金信 数组 简单 暴力 字典计数 哈希
0404.左叶子之和 树/二叉树 简单 递归 迭代
0406.根据身高重建队列 树/二叉树 简单 递归 迭代
0416.分割等和子集 动态规划 中等 背包问题/01背包
0429.N叉树的层序遍历 简单 队列/广度优先搜索
0434.字符串中的单词数 字符串 简单 模拟
0435.无重叠区间 贪心 中等 贪心 经典题目,有点难
0450.删除二叉搜索树中的节点 中等 递归
0452.用最少数量的箭引爆气球 贪心/排序 中等 贪心 经典题目
0454.四数相加II 哈希表 中等 哈希
0455.分发饼干 贪心 简单 贪心
0459.重复的子字符串 字符创 简单 KMP
0473.火柴拼正方形 深度优先搜索 中等 回溯算法 和698.划分为k个相等的子集差不多
0474.一和零 动态规划 中等 多重背包 好题目
0486.预测赢家 动态规划 中等 递归 记忆递归 动态规划
0491.递增子序列 深度优先搜索 中等 深度优先搜索/回溯算法 这个去重有意思
0496.下一个更大元素I 中等 单调栈 入门题目,但是两个数组还是有点绕的
0501.二叉搜索树中的众数 二叉树 简单 递归/中序遍历
0513.找树左下角的值 二叉树 中等 递归 迭代
0515.在每个树行中找最大值 二叉树 简单 广度优先搜索/队列
0518.零钱兑换II 动态规划 中等 动态规划 dp里求组合
0530.二叉搜索树的最小绝对差 二叉树搜索树 简单 递归 迭代
0538.把二叉搜索树转换为累加树 二叉搜索树 简单 递归 迭代
0541.反转字符串II 字符串 简单 模拟
0559.N叉树的最大深度 N叉树 简单 递归
0572.另一个树的子树 二叉树 简单 递归
0575.分糖果 哈希表 简单 哈希
0589.N叉树的前序遍历 N叉树 简单 递归 栈/迭代
0590.N叉树的后序遍历 N叉树 简单 递归 栈/迭代
0617.合并二叉树 简单 递归 迭代
0637.二叉树的层平均值 简单 广度优先搜索/队列
0649.Dota2参议院 贪心 简单 贪心算法 简单的贪心策略但代码实现很有技巧
0654.最大二叉树 中等 递归
0685.冗余连接II 并查集/树/图 困难 并查集
0669.修剪二叉搜索树 二叉搜索树/二叉树 简单 递归 迭代
0698.划分为k个相等的子集 回溯算法 中等 动态规划 回溯算法 这其实是组合问题,使用了两次递归,好题
0700.二叉搜索树中的搜索 二叉搜索树 简单 递归 迭代
0701.二叉搜索树中的插入操作 二叉搜索树 简单 递归 迭代
0705.设计哈希集合 哈希表 简单 模拟
0707.设计链表 链表 中等 模拟
0763.划分字母区间 贪心 中等 双指针/贪心 体现贪心尽可能多的**
0739.每日温度 中等 单调栈 适合单调栈入门
0767.重构字符串 字符串 中等 字符串 + 排序+一点贪心
0841.钥匙和房间 孤岛问题 中等 bfs dfs
0844.比较含退格的字符串 字符串 简单 双指针优化 使用栈的思路但没有必要使用栈
0860.柠檬水找零 贪心算法 简单 贪心算法 基础题目
0925.长按键入 字符串 简单 双指针/模拟 是一道模拟类型的题目
0941.有效的山脉数组 数组 简单 双指针
0968.监控二叉树 二叉树 困难 贪心 贪心与二叉树的结合
0973.最接近原点的K个点 优先级队列 中等 优先级队列
0977.有序数组的平方 数组 中等 双指针 还是比较巧妙的
1002.查找常用字符 简单
1005.K次取反后最大化的数组和 贪心/排序 贪心算法 贪心基础题目
1047.删除字符串中的所有相邻重复项 哈希表 简单 哈希表/数组
1049.最后一块石头的重量II 动态规划 中等 01背包
1207.独一无二的出现次数 哈希表 简单 哈希 两层哈希
1221.分割平衡字符串 贪心 简单 贪心算法 基础题目
1356.根据数字二进制下1的数目排序 位运算 简单 位运算 巧妙的计算二进制中1的数量
1365.有多少小于当前数字的数字 数组、哈希表 简单 哈希 从后遍历的技巧很不错
1382.将二叉搜索树变平衡 二叉搜索树 中等 递归 迭代 98和108的组合题目
1403.非递增顺序的最小子序列 贪心算法 简单 贪心算法 贪心基础题目
1518.换酒问题 贪心算法 简单 贪心算法 贪心基础题目
剑指Offer05.替换空格 字符串 简单 双指针
剑指Offer58-I.翻转单词顺序 字符串 简单 模拟/双指针
剑指Offer58-II.左旋转字符串 字符串 简单 反转操作
剑指Offer59-I.滑动窗口的最大值 滑动窗口/队列 困难 单调队列
面试题02.07.链表相交 链表 简单 模拟

持续更新中....

关于作者

大家好,我是程序员Carl,哈工大师兄,ACM 校赛、黑龙江省赛、东北四省赛金牌、亚洲区域赛铜牌获得者,先后在腾讯和百度从事后端技术研发,CSDN博客专家。对算法和C++后端技术有一定的见解,利用工作之余重新刷leetcode。

加我的微信,备注:「个人简单介绍」+「组队刷题」, 拉你进刷题群,每天一道经典题目分析,而且题目不是孤立的,每一道题目之间都是有关系的,都是由浅入深一脉相承的,所以学习效果最好是每篇连续着看,也许之前你会某些知识点,但是一直没有把知识点串起来,这里每天一篇文章就会帮你把知识点串起来。

我的公众号

更多精彩文章持续更新,微信搜索:「代码随想录」第一时间围观,关注后回复:「简历模板」「二叉树总结」「回溯算法总结」「栈与队列总结」等关键字就可以获得我整理的学习资料。

每天8:35准时为你推送一篇经典面试题目,帮你梳理算法知识体系,轻松学习算法!,并且公众号里有大量学习资源,也有我自己的学习心得和方法总结,更有很多志同道合的好伙伴在这里打卡学习,来看看就你知道了,相信一定会有所收获!

About

LeetCode 刷题攻略:配思维导图,各个类型的经典题目刷题顺序、经典算法模板,以及详细图解和视频题解。这里精选的题目都不是孤立的,而是由浅入深一脉相承的,相信只要按照刷题攻略上的顺序来学习,一定会有所收获!给个star支持一下吧!