我的力扣刷题笔记
我的力扣刷题笔记
本仓库代码攻略部分在代码随想录的基础上写的 转载自代码随想录主页 仅用于个人学习。
强烈推荐小白的刷题顺序,经过上万网友的印证!
数组
- 🔥关于数组
- 🔥二分法
- 🔥移除元素
- 🔥滑动窗口
- 🔥螺旋矩阵(绕晕人的循环)
链表
哈希表
- 🔥关于哈希表
- 🔥用数组实现哈希表(表长固定的情况)
- 🔥Set使用:两个数组的交集
- 🔥用Set来判断快乐数
- 🔥map使用:两数之和
- 🔥map使用:四数相加Ⅱ
- 🔥map使用:赎金信
- 🔥map使用:三数之和
字符串
栈与队列
- 🔥关于栈和队列
- 🔥用栈实现队列
- 🔥用队列实现栈
- 🔥栈的应用(括号匹配)
- 🔥栈的应用(删除字符串中所有相邻重复项,本质同为匹配问题)
- 🔥栈的应用(计算后缀表达式)
- 🔥队列应用(单调队列经典题目)
- 🔥前k个高频元素和队列有什么关系
二叉树
二叉树的题目类型分类:
- 🔥关于二叉树
- 🔥二叉树的递归遍历
- 🔥二叉树的迭代遍历
- 🔥二叉树的层序遍历
- 🔥翻转二叉树
- 🔥判断二叉树是否对称
- 🔥求树的最大深度
- 🔥求树的最小深度
- 🔥完全二叉树的节点个数
- 🔥判断是否是平衡二叉树
- 🔥寻找二叉树的所有路径
- 🔥二叉树的左叶子值之和
- 🔥二叉树:判断是否存在根节点到叶子节点值的和等于给定值
- 🔥二叉树:找到所有根节点到叶子节点值的和等于给定值的所有路径
- 🔥构造二叉树(中序+后序)
- 🔥构造二叉树(前序+中序)
- 🔥构造最大的二叉树
- 🔥合并两个二叉树
- 🔥二叉搜索树:搜索给定的值的节点为根节点的子树
- 🔥判断是否为二叉搜索树
- 🔥搜索树的最小绝对差
- 🔥二叉搜索树中的众数
- 🔥二叉树的最近公共祖先
- 🔥二叉搜索树的最近公共祖先
- 🔥二叉搜索树中的插入操作
- 🔥二叉搜索树中的删除操作
- 🔥修剪二叉搜索树
- 🔥有序数组构造二叉搜索树
- 🔥二叉搜索树转换为累加树
回溯算法
题目类型大纲如下:
- 🔥关于回溯算法
- 🔥回溯算法:组合问题
- 🔥回溯算法:组合总和Ⅲ
- 🔥回溯算法:电话号码的字母组合
- 🔥回溯算法:求组合总和(二)
- 🔥回溯算法:求组合总和(三)
- 🔥回溯算法:分割回文串
- 🔥回溯算法:复制IP地址
- 🔥回溯算法:子集
- 🔥回溯算法:子集Ⅱ
- 🔥回溯算法:递增子序列
- 🔥回溯算法:全排列
- 🔥回溯算法:全排列Ⅱ
- (!)🔥回溯算法:安排行程问题
- 🔥回溯算法:N皇后问题
- 🔥回溯算法:解数独
贪心算法
题目分类大纲如下:
- 🔥关于贪心算法
- 🔥贪心算法: 分发饼干
- 🔥贪心算法: 摆动序列
- 🔥贪心算法: 最大子序和
- 🔥贪心算法:买卖股票的最佳时机Ⅱ
- 🔥贪心算法:跳跃游戏
- 🔥贪心算法:跳跃游戏Ⅱ
- 🔥贪心算法:k次取反后最大化的数组和
- 🔥贪心算法:加油站
- 🔥贪心算法:分发糖果
- 🔥贪心算法:柠檬水找零
- (!)🔥贪心算法:根据身高重建队列
- 🔥贪心算法:用最少数量的箭引爆气球
- 🔥贪心算法:无重叠区间
- 🔥贪心算法:划分字母区间
- 🔥贪心算法:合并区间
- 🔥贪心算法:单调递增的数字
- 🔥贪心算法:买卖股票的最佳时机含手续费
- 🔥贪心算法:监控二叉树
动态规划
背包系列:
- 🔥动态规划:关于01背包问题
- 🔥动态规划:关于01背包问题(滚动数组)
- 🔥动态规划:分割等和子集
- 🔥动态规划:最后一块石头的重量Ⅱ
- 🔥动态规划:目标和
- 🔥动态规划:一和零
- 🔥动态规划:关于完全背包
- 🔥动态规划:零钱兑换Ⅱ
- 🔥动态规划:组合总和Ⅵ(其实是排列总和)
- 🔥动态规划:让我再爬一次楼梯
- 🔥动态规划:零钱兑换
- 🔥动态规划:完全平方数
- 🔥动态规划:单词拆分
- 🔥动态规划:关于多重背包
打家劫舍系列:
股票系列:
- 🔥动态规划:买卖股票的最佳时机
- 🔥动态规划:买卖股票的最佳时机Ⅱ
- 🔥动态规划:买卖股票的最佳时机Ⅲ
- 🔥动态规划:买卖股票的最佳时机Ⅳ
- 🔥动态规划:最佳买卖股票时机含冷冻期
- 🔥动态规划:最佳买卖股票时机含手续费
子序列系列:
- 🔥动态规划:最长递增子序列
- 🔥动态规划:最长连续递增序列
- 🔥动态规划:最长重复子数组
- 🔥动态规划:最长公共子序列
- 🔥动态规划:不相交的线
- 🔥动态规划:最大子序和
- 🔥动态规划:判断子序列
- 🔥动态规划:不同的子序列
- 🔥动态规划:两个字符串的删除操作
- 🔥动态规划:编辑距离
- 🔥动态规划:回文子串
- 🔥动态规划:最长回文子序列
单调栈
图论
并查集
补充题目
数组
- 1365.有多少小于当前数字的数字
- 941.有效的山脉数组(双指针)
- 1207.独一无二的出现次数
- 283.移动零【数组】【双指针】
- 189.旋转数组
- 724.寻找数组的中心下标
- 34.在排序数组中查找元素的第一个和最后一个位置【二分法】
- 922.按奇偶排序树组Ⅱ
- 35.搜索插入位置
链表
哈希表
- 205.同构字符串【哈希表的应用】
字符串
- 925.长按键入【模拟匹配】
- 844.比较含退格的字符串【栈模拟】【空间更优的双指针】
二叉树
二分查找
- 668.乘法表中的第k小的数【值作为边界】
- 719.找出第k小的距离对【距离作为边界】
回溯算法
- 52.N皇后Ⅱ【有难度】
贪心算法
- 649.Dota2参议院【有难度】
- 1221.分割平衡字符串
动态规划
- 5.最长回文子串
- 132.分割回文串Ⅱ【有难度,在前一题的基础上写】
- 673.最长递增子序列的个数【难度较大】
图论
并查集
模拟
拓扑排序
位运算
算法模板
每日一题
2021 11月
- 575.分糖果【简单贪心】
- 237.删除链表中的节点【删除节点的第二种方法】
- 407.接雨水Ⅱ【最小堆经典题目】
- 367.有效的完全平方数
- 1218.最长定差子序列【动态规划】
- 268.丢失的数字【排序|哈希集合|位运算|数学方法】
- 598.范围求和Ⅱ
- 299.猜数字游戏
- (!)488.祖玛游戏【双指针|回溯】【困难】
- 495.提莫攻击【简单模拟】
- (!)629.K个逆序对数组【序列DP】【困难】
- 375.猜数字大小Ⅱ【动态规划】
- 520.检测大写字母【简单分类讨论】
- 677.键值映射【类的实现】【暴力|哈希映射|字典树】
- 319.灯泡开关【数论】
- 391.完美矩形【困难】
- 318.最大单词长度乘积【位运算降低复杂度】
- 563.二叉树的坡度【二叉树遍历】
- 397.整数替换
- 594.最长和谐子序列【枚举|哈希表】
- 559. N 叉树的最大深度
- 384.打乱数组
- 859:亲密字符串【字符串模拟】
- 423.从英文中重建数字【字典树的应用】
- (!)458.可怜的小猪【数论||动态规划】【困难】
- 700.二叉搜索树中的搜索
- (!)519.随机翻转矩阵【分块||数组映射】
- 438.找到字符串中所有字母异位词【哈希表的维护】
- 786.第 K 个最小的素数分数【二分查找||自定义排序】
- 400.第 N 位数字【数学模拟】
2021 12月
- 1446.连续字符
- 506.相对名次
- 1005.K 次取反后最大化的数组和【贪心】
- 383.赎金信
- 372.超级次方
- 1816.截断句子
- 1034.边界着色【深搜||广搜】
- 689.边界着色【困难】【滑动窗口】
- 794.有效的井字游戏【模拟判断】
- 748.最短补全词
- 911.在线选举
- 709.转换成小写字母
- 807.保持城市天际线
- 630.课程表Ⅲ【优先队列】【贪心】
- 851.喧闹和富有【深度优先搜索】【拓扑排序】
- 1610.可见点的最大数目【滑动窗口】
- 1518.换酒问题
- 419.甲板上的战舰
- 997.找到小镇的法官
- 475.供暖器
- 1154.一年中的第几天
- 686. 重复叠加字符串匹配【字符串匹配】【KMP算法】
- (!)1044. 最长重复子串【字符串哈希+二分】【后缀数组+哈希算法】
- 1705. 吃苹果的最大数目【贪心】【优先队列】
- 1609. 奇偶树【层序遍历】
- 1078. Bigram 分词
- 825. 适龄的朋友【排序+二分】【排序+双指针】【桶排序】
- 472. 连接词【字典书】【dfs】
- 1995.统计特殊四元组【暴力】【哈希】
- 846.一手顺子【排序+哈希】【纯哈希】
- 507. 完美数【纯数学】
最后修改于 2022-01-27
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。