Skip to content

neticle2012/myleetcode

Repository files navigation

myleetcode

记录leetcode刷题的经验

类别 顺序 题目 笔记 难度 备注
链表 0 LC203 移除链表元素 Note Easy 链表:听说用虚拟头节点会方便很多?
1 02.01.移除重复节点 Note Easy 程序员面试金典
2 LC707 设计链表 Note Medium 链表:一道题目考察了常见的五个操作!
3 LC206 反转链表 Note Easy 链表:听说过两天反转链表又写不出来了? | 双指针
4 02.06. 回文链表 Note Easy 234.回文链表 | 程序员面试金典 | 双快慢指针 | 数组
5 LC24 两两交换链表中的节点 Note Medium 链表:两两交换链表中的节点 | 双指针
6 LC19 删除链表的倒数第N个结点 Note Medium 链表:删除链表的倒数第 N 个结点 | 双快慢指针
7 02.07. 链表相交 Note Easy 链表:链表相交 | 双快慢指针
8 LC142 环形链表 II Note Medium 链表:环找到了,那入口呢? | 双快慢指针
9 02.03. 删除中间节点 Note Easy 程序员面试金典
10 02.04. 分割链表 Note Medium 程序员面试金典
11 02.05. 链表求和 Note Medium 程序员面试金典
12 LC143 重排链表 Note Medium 143.重排链表 | 双快慢指针 | 数组 | 双向队列 | TODO:学完队列之后再做一遍
13 LC21 合并两个有序链表 Note Easy 剑指Offer25
14 LC138 复制带随机指针的链表 Note Medium 剑指Offer35 | TODO:学完回溯算法之后再做一遍
15 06. 从尾到头打印链表 Note Easy 剑指Offer | 双指针 | TODO:学完栈之后再做一遍
16 02.02. 返回倒数第 k 个节点 Note Easy 双快慢指针
17 LC445 两数相加 II Note Medium 剑指OfferII 025 | 双指针 | 字符串 | 栈
18 029. 排序的循环链表 Note Medium 剑指OfferII
19 LC148 排序链表 Note Medium 剑指OfferII 077 | 八大排序(归并) | TODO:学完归并排序再做一遍
20 LC146 LRU 缓存机制 Note Medium 剑指OfferII 031 | 哈希表 | 源码分析:LinkedHashMap
21 LC23 合并K个升序链表 Note Hard 剑指OfferII 078 | 归并排序 | 堆(优先队列)
数组 0 LC704 二分查找 Note Easy 数组:每次遇到二分法,都是一看就会,一写就废 | 二分查找
1 LC27 移除元素 Note Easy 数组:就移除个元素很难么? | 双快慢指针
2 LC977 有序数组的平方 Note Easy 数组:有序数组的平方,还有序么? | 双指针
3 LC209 长度最小的子数组 Note Medium 数组:滑动窗口拯救了你 | 滑动窗口
4 10.05. 稀疏数组搜索 Note Easy 程序员面试金典 | 二分查找
5 LC59 螺旋矩阵II Note Medium 数组:这个循环可以转懵很多人!
6 08.03. 魔术索引 Note Easy 程序员面试金典 | 二分查找 | 分治法
7 LC35 搜索插入位置 Note Easy 剑指offerII 068 | 二分查找
8 LC1365 有多少小于当前数字的数字 Note Easy 1365.有多少小于当前数字的数字 | 快速排序 | 哈希表
9 LC941 有效的山脉数组 Note Easy 941.有效的山脉数组 | 双指针
10 LC283 移动零 Note Easy 283.移动零 | 双快慢指针
11 LC189 旋转数组 Note Medium 189.旋转数组 | 字符串反转
12 LC724 寻找数组的中心下标 Note Easy 724.寻找数组的中心索引 | 剑指offerII 012
13 LC34 在排序数组中查找元素的第一个和最后一个位置 Note Medium 34.在排序数组中查找元素的第一个和最后一个位置 | 二分查找
14 LC922 按奇偶排序数组II Note Easy 922.按奇偶排序数组II | 双快慢指针
15 LC1207 独一无二的出现次数 Note Easy 1207.独一无二的出现次数 | 哈希表
16 03. 数组中重复的数字 Note Easy 哈希表 / 原地交换,清晰图解 | 剑指offer | 哈希表
17 01.08. 零矩阵 Note Medium 程序员面试金典 | 哈希表
18 16.06. 最小差 Note Medium 程序员面试金典 | 双指针
19 LC48 旋转图像 Note Medium 程序员面试金典01.07
20 10.03. 搜索旋转数组 Note Medium 程序员面试金典 | 剑指offer11 | LC154 | 二分查找
21 16.10. 生存人数 Note Medium 程序员面试金典 | 哈希表 | 排序
22 LC240 搜索二维矩阵 II Note Medium 剑指Offer04 | 程序员面试金典10.09 | 二分查找 | TODO:学完树再做一遍
23 LC54 螺旋矩阵 Note Medium 剑指Offer29
24 21. 调整数组顺序使奇数位于偶数前面 Note Easy 剑指Offer | 双快慢指针
25 56 - I. 数组中数字出现的次数 Note Medium 剑指Offer | 哈希表 | 位运算(异或)
26 17. 打印从1到最大的n位数 Note Easy 剑指Offer | 大数问题 | 递归 | 打印从1到最大的n位数,普通解法 + 大数全排列解法 | TODO:学完深度优先搜索再看一遍
27 57. 和为s的两个数字 Note Easy 剑指Offer | 双指针
28 66. 构建乘积数组 Note Medium 剑指Offer | 前缀和
29 61. 扑克牌中的顺子 Note Easy 剑指Offer | 哈希表 | 排序
30 05.08. 绘制直线 Note Medium 程序员面试金典 | 位运算
31 10.01. 合并排序的数组 Note Easy 程序员面试金典 | 双指针
32 17.19. 消失的两个数字 Note Hard 程序员面试金典 | 哈希表 | 位运算(异或)
33 56 - II. 数组中数字出现的次数 II Note Medium 剑指offer | 哈希表 | 位运算
34 16.11. 跳水板 Note Easy 程序员面试金典
35 17.26. 稀疏相似度 Note Hard 程序员面试金典 | 哈希表
36 LC167 两数之和 II - 输入有序数组 Note Easy 剑指OfferII 006 | 双指针 | 二分查找
37 LC713 乘积小于K的子数组 Note Medium 剑指OfferII 009 | 滑动窗口
38 LC304 二维区域和检索 - 矩阵不可变 Note Medium 剑指OfferII 013 | 前缀和
39 LC852 山脉数组的峰顶索引 Note Easy 剑指OfferII 069 | 双指针 | 二分查找
40 LC540 有序数组中的单一元素 Note Medium 剑指OfferII 070 | 位运算(异或) | 二分查找
41 LC528 按权重随机选择 Note Medium 剑指OfferII 071 | 二分查找 | 前缀和
42 LC56 合并区间 Note Medium 剑指OfferII 074 | 定制排序
43 16.04. 井字游戏 Note Medium 程序员面试金典
44 57 - II. 和为s的连续正数序列 Note Easy 剑指offer | 滑动窗口
45 LC875 爱吃香蕉的珂珂 Note Medium 剑指OfferII 073 | 二分查找
哈希表 0 LC242 有效的字母异位词 Note Easy 哈希表:可以拿数组当哈希表来用,但哈希值不要太大 | 剑指OfferII 032
1 LC1002 查找共用字符 Note Easy 哈希表:查找常用字符
2 LC349 两个数组的交集 Note Easy 哈希表:哈希值太大了,还是得用set
3 LC202 快乐数 Note Easy 哈希表:用set来判断快乐数 | 递归 | 双快慢指针
4 LC1 两数之和 Note Easy 哈希表:map等候多时了
5 LC454 四数相加 II Note Medium 哈希表:其实需要哈希的地方都能找到map的身影
6 LC383 赎金信 Note Easy 哈希表:这道题目我做过?
7 LC15 三数之和 Note Medium 哈希表:解决了两数之和,那么能解决三数之和么? | 双指针
8 LC18 四数之和 Note Medium 双指针法:一样的道理,能解决四数之和 | 双指针
9 LC205 同构字符串 Note Easy 205.同构字符串
10 17.04. 消失的数字 Note Easy 程序员面试金典 | 位运算(异或)
11 16.24. 数对和 Note Medium 程序员面试金典 | 双指针
12 16.21. 交换和 Note Medium 程序员面试金典 | 双指针
13 01.01. 判定字符是否唯一 Note Easy 程序员面试金典 | 位运算
14 01.04. 回文排列 Note Easy 程序员面试金典 | 位运算(异或)
15 16.15. 珠玑妙算 Note Easy 程序员面试金典
16 LC169 多数元素 Note Easy 剑指Offer39 | Boyer-Moore 投票算法
17 50. 第一个只出现一次的字符 Note Easy 剑指offer | 队列 | TODO:学完队列之后再做一遍
18 LC560 和为 K 的子数组 Note Medium 剑指OfferII 010 | 前缀和
19 16.02. 单词频率 Note Medium 程序员面试金典 | 字典树 | TODO:学完树之后再做一遍
20 LC318 最大单词长度乘积 Note Medium 剑指OfferII 005 | 位运算
21 17.05. 字母与数字 Note Medium 程序员面试金典 | 前缀和
22 LC525 连续数组 Note Medium 剑指OfferII 011 | 前缀和
23 LC128 最长连续序列 Note Medium 剑指OfferII 119
24 LC1122 数组的相对排序 Note Easy 剑指OfferII 075 | 定制排序 | 计数排序
25 LC380 O(1) 时间插入、删除和获取随机元素 Note Medium 剑指OfferII 030
26 LC953 验证外星语词典 Note Easy 剑指OfferII 034
27 16.20. T9键盘 Note Medium 程序员面试金典
28 16.22. 兰顿蚂蚁 Note Medium 程序员面试金典 | 重写equalshashCode
29 17.18. 最短超串 Note Medium 程序员面试金典 | 滑动窗口
字符串 0 LC344 反转字符串 Note Easy 字符串:这道题目,使用库函数一行代码搞定 | 双指针 | 使用异或完成两数交换
1 LC541 反转字符串 II Note Easy 字符串:简单的反转还不够!
2 05. 替换空格 Note Easy 字符串:替换空格 | 剑指offer | 双指针
3 LC151 翻转字符串里的单词 Note Medium 字符串:花式反转还不够! | 剑指offer58-I | 双向队列 | TODO:学完队列之后再做一遍
4 58 - II. 左旋转字符串 Note Easy 字符串:反转个字符串还有这个用处? | 剑指offer
5 01.03. URL化 Note Easy 程序员面试金典 | 双指针
6 LC28 实现 strStr() Note Easy 帮你把KMP算法学个通透 | KMP算法
7 LC459 重复的子字符串 Note Easy 字符串:KMP算法还能干这个! | KMP算法
8 01.06. 字符串压缩 Note Easy 程序员面试金典
9 01.09. 字符串轮转 Note Easy 程序员面试金典 | KMP算法
10 05.02. 二进制数转字符串 Note Medium 程序员面试金典 | 位运算
11 10.02. 变位词组 Note Medium 程序员面试金典 | 剑指OfferII 033 | LC49 | 哈希表 | 排序
12 01.05. 一次编辑 Note Medium 程序员面试金典 | 双指针
13 17.11. 单词距离 Note Medium 程序员面试金典 | 哈希表 | 双指针 | 双快慢指针
14 LC3 无重复字符的最长子串 Note Medium 剑指Offer48 | 滑动窗口 | 哈希表
15 LC8 字符串转换整数 (atoi) Note Medium 剑指Offer67 | TODO:学完Java正则表达式再做一遍
16 LC567 字符串的排列 Note Medium 剑指OfferII 014 | 滑动窗口 | 哈希表
17 LC438 找到字符串中所有字母异位词 Note Medium 剑指OfferII 015 | 滑动窗口 | 哈希表
18 LC539 最小时间差 Note Medium 剑指OfferII 035
19 LC67 二进制求和 Note Easy 剑指OfferII 002
20 LC76 最小覆盖子串 Note Hard 剑指OfferII 017 | 滑动窗口 | 哈希表
21 LC125 验证回文串 Note Easy 剑指OfferII 018 | 双指针
22 LC273 整数转换英文表示 Note Hard 程序员面试金典16.08 | 递归
栈与队列 0 LC232 用栈实现队列 Note Easy 栈与队列:我用栈来实现队列怎么样?
1 LC225 用队列实现栈 Note Easy 栈与队列:用队列实现栈还有点别扭
2 LC20 有效的括号 Note Easy 栈与队列:系统中处处都是栈的应用
3 LC1047 删除字符串中的所有相邻重复项 Note Easy 栈与队列:匹配问题都是栈的强项 | 字符串 | 双指针
4 LC150 逆波兰表达式求值 Note Medium 栈与队列:有没有想过计算机是如何处理表达式的? | 逆波兰表达式
5 LC239 滑动窗口最大值 Note Hard 栈与队列:滑动窗口里求最大值引出一个重要数据结构 | 单调队列 | TODO:学完堆排序后再做一遍
6 03.02. 栈的最小值 Note Easy 程序员面试金典
7 03.01. 三合一 Note Easy 程序员面试金典
8 16.26. 计算器 Note Medium 程序员面试金典 | 逆波兰表达式
9 03.05. 栈排序 Note Medium 程序员面试金典 | 惰性更新
10 LC946 验证栈序列 Note Medium 剑指offer31
11 03.06. 动物收容所 Note Easy 程序员面试金典
12 LC735 行星碰撞 Note Medium 剑指offerII 037
13 LC739 每日温度 Note Medium 剑指offerII 038 | 单调栈
14 LC84 柱状图中最大的矩形 Note Hard 剑指offerII 039 | 单调栈
15 17.21. 直方图的水量 Note Hard 程序员面试金典 | 单调栈 | TODO:学完动态规划再做一遍
16 041. 滑动窗口的平均值 Note Easy 剑指offerII
17 LC933 最近的请求次数 Note Easy 剑指offerII 042
18 03.03. 堆盘子 Note Medium 程序员面试金典
19 16.16. 部分排序 Note Medium 程序员面试金典 | 单调栈
20 59 - II. 队列的最大值 Note Medium 剑指offer | 单调队列
21 LC347 前 K 个高频元素 Note Medium 栈与队列:求前 K 个高频元素和队列有啥关系? | 剑指OfferII 060 | 哈希表 | 堆(优先级队列) | 源码分析:PriorityQueue
22 17.14. 最小K个数 Note Medium 程序员面试金典 | 剑指Offer40 | 堆(优先级队列) | 基于快速排序的数组划分
23 17.20. 连续中值 Note Hard 程序员面试金典 | 剑指Offer41 | LC295 | 堆(优先级队列)
24 LC703 数据流中的第 K 大元素 Note Easy 剑指OfferII 059 | 堆(优先级队列)
25 LC373 查找和最小的K对数字 Note Medium 剑指OfferII 061 | 堆(优先级队列)
26 LC215 数组中的第K个最大元素 Note Medium 剑指OfferII 076 | 堆(优先级队列) | 基于快速排序的数组划分
二叉树 0 LC144 二叉树的前序遍历 Note Easy 二叉树:一入递归深似海,从此offer是路人 | 二叉树:听说递归能做的,栈也能做! | 递归 | 栈 | TODO:有时间再去用线索化二叉树(Morris遍历)做一遍
1 LC94 二叉树的中序遍历 Note Easy 递归 | 栈
2 LC145 二叉树的后序遍历 Note Easy 递归 | 栈
3 LC102 二叉树的层序遍历 Note Medium 二叉树:层序遍历登场! | 迭代+递归 多图演示 102.二叉树的层次遍历 | 剑指Offer32-I | 剑指Offer32-II | 队列 | 广度优先遍历(层序遍历) | 深度优先遍历(前序遍历)
4 LC107 二叉树的层序遍历 II Note Medium 广度优先遍历(层序遍历)
5 LC199 二叉树的右视图 Note Medium 剑指OfferII 046 | 广度优先遍历(层序遍历)
6 LC637 二叉树的层平均值 Note Easy 广度优先遍历(层序遍历)
7 LC429 N 叉树的层序遍历 Note Medium 广度优先遍历(层序遍历)
8 LC515 在每个树行中找最大值 Note Medium 剑指OfferII 044 | 广度优先遍历(层序遍历)
9 LC116 填充每个节点的下一个右侧节点指针 Note Medium 动画演示+三种实现 116. 填充每个节点的下一个右侧节点指针 | 广度优先遍历(层序遍历) | 深度优先遍历
10 LC117 填充每个节点的下一个右侧节点指针 II Note Medium BFS解决(最好的击败了100%的用户) | 广度优先遍历(层序遍历)
11 LC104 二叉树的最大深度 Note Easy 二叉树:看看这些树的最大深度 | 剑指Offer55-I | 广度优先遍历(层序遍历) | 深度优先遍历(后序遍历) | 深度优先遍历(前序遍历)
12 LC111 二叉树的最小深度 Note Easy 二叉树:看看这些树的最小深度 | 广度优先遍历(层序遍历) | 深度优先遍历(后序遍历)
13 LC226 翻转二叉树 Note Easy 二叉树:你真的会翻转二叉树么? | 剑指Offer27 | 广度优先遍历(层序遍历) | 深度优先遍历(前序遍历)
14 LC101 对称二叉树 Note Easy 二叉树:我对称么? | 剑指Offer28 | 递归(深度优先搜索) | 队列(广度优先搜索) | 递归三部曲
15 LC100 相同的树 Note Easy 递归(深度优先搜索) | 队列(广度优先搜索)
16 LC572 另一棵树的子树 Note Easy 程序员面试金典04.10 | 剑指Offer26 | 递归(深度优先搜索) | 深度优先遍历(前序遍历) | KMP算法
17 LC559 N 叉树的最大深度 Note Easy 广度优先遍历(层序遍历) | 深度优先遍历(后序遍历) | 深度优先遍历(前序遍历)
18 LC222 完全二叉树的节点个数 Note Medium 二叉树:我有多少个节点? | 完全二叉树 | 满二叉树
19 LC110. 平衡二叉树 Note Easy 二叉树:我平衡么? | 程序员面试金典04.04 | 剑指Offer55-II | 平衡二叉树 | 深度优先遍历(后序遍历)
20 LC589. N 叉树的前序遍历 Note Easy 递归 | 栈
21 LC590. N 叉树的后序遍历 Note Easy 递归 | 栈
22 LC257 二叉树的所有路径 Note Easy 二叉树:找我的所有路径? | 二叉树:以为使用了递归,其实还隐藏着回溯 | 深度优先遍历(前序遍历) | 回溯
23 LC404 左叶子之和 Note Easy 二叉树:做了这么多题目了,我的左叶子之和是多少? | 广度优先遍历(层序遍历) | 深度优先遍历(前序遍历) | 深度优先遍历(后序遍历)
24 LC513 找树左下角的值 Note Medium 二叉树:我的左下角的值是多少? | 剑指OfferII 045 | 广度优先遍历(层序遍历) | 深度优先遍历(前序遍历)
25 LC112 路径总和 Note Easy 二叉树:路径总和 | 深度优先遍历(前序遍历) | 广度优先遍历(层序遍历) | 递归方法什么时候需要返回值
26 LC113 路径总和 II Note Medium 剑指Offer34 | 深度优先遍历(前序遍历) | 回溯
27 LC106 从中序与后序遍历序列构造二叉树 Note Medium 二叉树:构造二叉树登场! | 图解构造二叉树之中序+后序 | 分治法 | 哈希表
28 LC105 从前序与中序遍历序列构造二叉树 Note Medium 分治法 | 哈希表 | 剑指Offer07
29 LC654 最大二叉树 Note Medium 二叉树:构造一棵最大的二叉树 | 分治法 | 单调栈
30 LC617 合并二叉树 Note Easy 二叉树:合并两个二叉树 | 深度优先遍历(前序遍历) | 广度优先遍历(层序遍历)
31 LC700 二叉搜索树中的搜索 Note Easy 二叉树:二叉搜索树登场! | 二叉搜索树
32 LC98 验证二叉搜索树 Note Medium 二叉树:我是不是一棵二叉搜索树 | 程序员面试金典04.05 | 二叉搜索树 | 深度优先遍历(前序遍历) | 深度优先遍历(中序遍历)
33 LC530 二叉搜索树的最小绝对差 Note Easy 二叉树:搜索树的最小绝对差 | 二叉搜索树 | 深度优先遍历(中序遍历)
34 LC501 二叉搜索树中的众数 Note Easy 二叉树:我的众数是多少? | 二叉搜索树 | 深度优先遍历(中序遍历)
35 LC236 二叉树的最近公共祖先 Note Medium 二叉树:公共祖先问题 | 程序员面试金典04.08 | 剑指Offer68-II | 深度优先遍历(前序遍历) | 深度优先遍历(后序遍历) | 递归方法有返回值时搜索一条边和搜索整棵树的逻辑 | 回溯
36 LC235 二叉搜索树的最近公共祖先 Note Easy 二叉树:搜索树的公共祖先问题 | 剑指Offer68-I | 二叉搜索树
37 LC701 二叉搜索树中的插入操作 Note Medium 二叉树:搜索树中的插入操作 | 二叉搜索树
38 LC450 删除二叉搜索树中的节点 Note Medium 二叉树:搜索树中的删除操作 | 二叉搜索树
39 LC669 修剪二叉搜索树 Note Medium 二叉树:修剪一棵搜索树 | 二叉搜索树 | 深度优先遍历(前序遍历)
40 LC108 将有序数组转换为二叉搜索树 Note Easy 二叉树:构造一棵搜索树 | 程序员面试金典04.02 | 二叉搜索树 | 分治法
41 LC538 把二叉搜索树转换为累加树 Note Medium 二叉树:搜索树转成累加树 | 剑指OfferII 054 | 二叉搜索树 | 深度优先遍历(反中序遍历)
42 04.03. 特定深度节点链表 Note Medium 程序员面试金典 | 广度优先遍历(层序遍历) | 深度优先遍历(前序遍历)
43 04.06. 后继者 Note Medium 程序员面试金典 | 深度优先遍历(中序遍历)
44 04.12. 求和路径 Note Medium 程序员面试金典 | 深度优先遍历(前序遍历) | 前缀和 | 哈希表 | 回溯
45 17.12. BiNode Note Easy 程序员面试金典 | 二叉搜索树 | 深度优先遍历(中序遍历) | 链表
46 LC129 求根节点到叶节点数字之和 Note Medium 129.求根到叶子节点数字之和 | 剑指OfferII 049 | 深度优先遍历(前序遍历) | 广度优先遍历(层序遍历) | 回溯
47 LC1382 将二叉搜索树变平衡 Note Medium 1382.将二叉搜索树变平衡 | 深度优先遍历(中序遍历) | 二叉搜索树 | 分治法
48 36. 二叉搜索树与双向链表 Note Medium 剑指offer | 二叉搜索树 | 深度优先遍历(中序遍历) | 链表
49 LC297 二叉树的序列化与反序列化 Note Hard 剑指Offer37 | 剑指OfferII 048 | 深度优先遍历(前序遍历) | 广度优先遍历(层序遍历) | 队列
50 32 - III. 从上到下打印二叉树 III Note Medium 剑指offer | 广度优先遍历(层序遍历)
51 LC919 完全二叉树插入器 Note Medium 剑指OfferII 043 | 广度优先遍历(层序遍历) | 完全二叉树 | 数组 | 队列
回溯算法 0 LC77 组合 Note Medium 回溯算法:组合问题 | 回溯算法:组合问题再剪剪枝 | 剑指OfferII 080 | 回溯三部曲
1 LC216 组合总和 III Note Medium 回溯算法:求组合总和!
2 LC17 电话号码的字母组合 Note Medium 回溯算法:电话号码的字母组合
3 LC39 组合总和 Note Medium 回溯算法:求组合总和(二) | 剑指OfferII 081 | 在组合问题中什么时候需要参数来控制for循环起始位置
4 LC40 组合总和 II Note Medium 回溯算法:求组合总和(三) | 剑指OfferII 082 | 树层去重和树枝去重
5 LC131 分割回文串 Note Medium 回溯算法:分割回文串 | TODO:学完动态规划再做一遍
6 LC93 复原 IP 地址 Note Medium 回溯算法:复原IP地址 | 剑指OfferII 087 | 正则表达式
7 LC78 子集 Note Medium 回溯算法:求子集问题! | 程序员面试金典08.04 | 剑指OfferII 079
8 LC90 子集 II Note Medium 回溯算法:求子集问题(二) | 树层去重
9 LC491 递增子序列 Note Medium 回溯算法:递增子序列 | 哈希表 | 树层去重
10 LC46 全排列 Note Medium 回溯算法:排列问题! | 程序员面试金典08.07 | 剑指OfferII 083 | 哈希表
11 LC47 全排列 II Note Medium 回溯算法:排列问题(二) | 程序员面试金典08.08 | 剑指Offer38 | 剑指OfferII 084 | 树层去重
12 LC332 重新安排行程 Note Hard 回溯算法:重新安排行程 | 图论 | 深度优先遍历 | 哈希表 | TreeSet/TreeMap
13 LC51 N 皇后 Note Hard 回溯算法:N皇后问题 | 程序员面试金典08.12 | LC52 | 哈希表
14 LC37 解数独 Note Hard 回溯算法:解数独 | 哈希表 | 位运算
15 08.09. 括号 Note Medium 程序员面试金典 | 剑指OfferII 085 | LC22
16 LC797 所有可能的路径 Note Medium 剑指OfferII 110 | 图论 | 深度优先遍历 | 广度优先遍历
17 LC79 单词搜索 Note Medium 剑指Offer12 | 深度优先遍历 | 使用偏移量数组来表示四个方向
贪心算法 0 LC455 分发饼干 Note Easy 贪心算法:分发饼干
1 LC376 摆动序列 Note Medium 贪心算法:摆动序列 | TODO:学完动态规划再做一遍
2 LC53 最大子数组和 Note Easy 贪心算法:最大子序和 | 动态规划:最大子序和 | 剑指Offer42 | 动态规划
3 LC122 买卖股票的最佳时机 II Note Medium 贪心算法:买卖股票的最佳时机II | 动态规划:买卖股票的最佳时机II | 动态规划
4 LC55 跳跃游戏 Note Medium 贪心算法:跳跃游戏
5 LC45 跳跃游戏 II Note Medium 贪心算法:跳跃游戏II
6 LC1005 K 次取反后最大化的数组和 Note Easy 贪心算法:K次取反后最大化的数组和 | 定制排序 | 计数排序
7 LC134 加油站 Note Medium 贪心算法:加油站
8 LC135 分发糖果 Note Hard 贪心算法:分发糖果
9 LC860 柠檬水找零 Note Easy 贪心算法:柠檬水找零
10 LC406 根据身高重建队列 Note Medium 贪心算法:根据身高重建队列 | 定制排序 | 链表
11 LC452 用最少数量的箭引爆气球 Note Medium 贪心算法:用最少数量的箭引爆气球 | 定制排序 | 定制排序的越界问题
12 LC435 无重叠区间 Note Medium 贪心算法:无重叠区间 | 定制排序
13 LC763 划分字母区间 Note Medium 贪心算法:划分字母区间 | 哈希表
14 LC738 单调递增的数字 Note Medium 贪心算法:单调递增的数字
15 LC714 买卖股票的最佳时机含手续费 Note Medium 贪心算法:买卖股票的最佳时机含手续费 | 动态规划:买卖股票的最佳时机含手续费 | 动态规划
16 LC968 监控二叉树 Note Hard 贪心算法:我要监控二叉树! | 二叉树 | 深度优先遍历(后序遍历) | TODO:学完动态规划再做一遍
17 LC649 Dota2 参议院 Note Medium 649.Dota2参议院 | 队列
18 LC1221 分割平衡字符串 Note Easy 1221.分割平衡字符
19 10.11. 峰与谷 Note Medium 程序员面试金典
20 45. 把数组排成最小的数 Note Medium 剑指offer | 定制排序
21 LC680 验证回文字符串 Ⅱ Note Easy 剑指OfferII 019 | 双指针 | 递归
动态规划 0 LC509 斐波那契数 Note Easy 动态规划:斐波那契数 | 剑指Offer10-I | 递归 | 动态规划五部曲
1 LC70 爬楼梯 Note Easy 动态规划:爬楼梯 | 动态规划:以前我没得选,现在我选择再爬一次! | 剑指Offer10-II | 完全背包问题(排列数)
2 LC746 使用最小花费爬楼梯 Note Easy 动态规划:使用最小花费爬楼梯 | 剑指OfferII 088
3 LC62 不同路径 Note Medium 动态规划:不同路径 | 剑指OfferII 098
4 LC63 不同路径 II Note Medium 动态规划:不同路径还不够,要有障碍!
5 LC343 整数拆分 Note Medium 动态规划:整数拆分,你要怎么拆?
6 LC96 不同的二叉搜索树 Note Medium 动态规划:不同的二叉搜索树 | 二叉搜索树
7 LC416 分割等和子集 Note Medium 动态规划:关于01背包问题,你该了解这些! | 动态规划:关于01背包问题,你该了解这些!(滚动数组) | 动态规划:分割等和子集可以用01背包! | 01背包问题(价值最大) | 滚动数组优化
8 LC1049 最后一块石头的重量 II Note Medium 动态规划:最后一块石头的重量 II | 01背包问题(价值最大)
9 LC494 目标和 Note Medium 动态规划:目标和! | 01背包问题(方法数)
10 LC474 一和零 Note Medium 动态规划:一和零! | 01背包问题(价值最大)
11 LC518 零钱兑换 II Note Medium 动态规划:关于完全背包,你该了解这些! | 动态规划:给你一些零钱,你要怎么凑? | 完全背包问题(组合数)
12 LC377 组合总和 Ⅳ Note Medium 动态规划:Carl称它为排列总和! | 剑指OfferII 104 | 完全背包问题(排列数)
13 LC322 零钱兑换 Note Medium 动态规划: 给我个机会,我再兑换一次零钱 | 剑指OfferII 103 | 完全背包问题(价值最大)
14 LC279 完全平方数 Note Medium 动态规划:一样的套路,再求一次完全平方数 | 完全背包问题(价值最大)
15 LC139 单词拆分 Note Medium 动态规划:单词拆分 | 完全背包问题(能否装满背包) | 哈希表
16 LC198 打家劫舍 Note Medium 动态规划:开始打家劫舍! | 剑指OfferII 089
17 LC213 打家劫舍 II Note Medium 动态规划:继续打家劫舍! | 剑指OfferII 090
18 LC337 打家劫舍 III Note Medium 动态规划:还要打家劫舍! | 哈希表 | 树形dp | 深度优先遍历(后序遍历)
19 LC121 买卖股票的最佳时机 Note Easy 动态规划:买卖股票的最佳时机 | 剑指Offer63 | 贪心算法
20 LC123 买卖股票的最佳时机 III Note Hard 动态规划:买卖股票的最佳时机III
21 LC188 买卖股票的最佳时机 IV Note Hard 动态规划:买卖股票的最佳时机IV
22 LC309 最佳买卖股票时机含冷冻期 Note Medium 动态规划:最佳买卖股票时机含冷冻期
23 LC300 最长递增子序列 Note Medium 动态规划:最长递增子序列
24 LC674 最长连续递增序列 Note Easy 动态规划:最长连续递增序列 | 贪心算法
25 LC718 最长重复子数组 Note Medium 动态规划:最长重复子数组
26 LC1143 最长公共子序列 Note Medium 动态规划:最长公共子序列 | 剑指OfferII 095
27 LC1035 不相交的线 Note Medium 动态规划:不相交的线
28 LC392 判断子序列 Note Easy 动态规划:判断子序列
29 LC115 不同的子序列 Note Hard 动态规划:不同的子序列 | 剑指OfferII 097
30 LC583 两个字符串的删除操作 Note Medium 动态规划:两个字符串的删除操作
31 LC72 编辑距离 Note Hard 动态规划:编辑距离
32 LC647 回文子串 Note Medium 动态规划:回文子串 | 剑指OfferII 020 | 双指针
33 LC516 最长回文子序列 Note Medium 动态规划:最长回文子序列
34 LC5 最长回文子串 Note Medium 5.最长回文子串 | 双指针
35 LC132 分割回文串 II Note Hard 132.分割回文串II
36 LC673 最长递增子序列的个数 Note Medium 673.最长递增子序列的个数 | TODO:学完树状数组再做一遍
其他 0 LC69 Sqrt(x) Note Easy 剑指OfferII 072 | 二分查找 | 牛顿迭代法
1 05.01. 插入 Note Easy 程序员面试金典 | 位运算
2 05.06. 整数转换 Note Easy 程序员面试金典 | 位运算(统计二进制位1的个数)
3 05.07. 配对交换 Note Easy 程序员面试金典 | 位运算
4 16.07. 最大数值 Note Easy 程序员面试金典 | 位运算
5 16.09. 运算 Note Medium 程序员面试金典 | 数学题
6 16.01. 交换数字 Note Medium 程序员面试金典 | 位运算(异或)
7 16.03. 交点 Note Hard 程序员面试金典 | 数学题
8 16.13. 平分正方形 Note Medium 程序员面试金典 | 数学题
9 17.01. 不用加号的加法 Note Easy 程序员面试金典 | 剑指Offer65 | 位运算
10 16.05. 阶乘尾数 Note Easy 程序员面试金典
11 16.14. 最佳直线 Note Medium 程序员面试金典 | 哈希表(重写equalshashCode) | 数学题 | TODO:有时间再去学习下民间解法
12 LC191 位1的个数 Note Easy 剑指Offer15 | 位运算(统计二进制位1的个数) | 源码分析:Integer.bitCount()
13 LC50 Pow(x, n) Note Medium 剑指Offer16 | 递归
14 64. 求1+2+…+n Note Medium 剑指offer | 递归
15 62. 圆圈中最后剩下的数字 Note Easy 剑指offer | 换个角度举例解决约瑟夫环
16 LC29 两数相除 Note Medium 剑指OfferII 001 | 递归 | 位运算
17 08.06. 汉诺塔问题 Note Easy 程序员面试金典 | 分治法
18 LC400 第 N 位数字 Note Medium 剑指Offer44
19 05.04. 下一个数 Note Medium 程序员面试金典 | 位运算
20 LC1356 根据数字二进制下 1 的数目排序 Note Easy 1356.根据数字二进制下1的数目排序 | 定制排序 | 位运算

About

记录leetcode刷题的经验

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published