/LCNotes

LeetCode Notes

Primary LanguagePythonMIT LicenseMIT

本仓库为本人和小伙伴的面试准备刷题库,题目均来自LeetCode(英文版)和面试常见题目,本仓库包含题解,目前由我、maple-zyshulala1a维护(想要加入请参考格式配置),根目录的Problems为题解库文件夹,每道题以题目id为文件夹,其中包含题目说明和题解描述的markdown文件(该文件按照二级标题统一格式)和一个对应的题解源码的py文件。本仓库的部分题解包含的优化思路用于面试,面试解题时可以先按照原始思路做,面试官问优化思路再回答。

📚目录

二叉树

单调栈

对称性递归

二分查找

图问题

位运算

01背包

完全背包

编辑距离

并查集

📝题库

主站题库

下表为LeetCode美国版原始题库。

题目ID 原题链接 题目全名 题目难度 题目类型 题解(点击下方)
3 link 无重复字符的最长子串 Medium 滑动窗口 link
11 link 盛最多水的容器 Medium 双指针 link
19 link 删除链表的倒数第 N 个结点 Medium 双指针 link
20 link 有效的括号 Easy link
21 link 合并两个有序链表 Easy 链表 link
36 link 有效的数独 Medium 数组 link
42 link 接雨水 Hard 双指针 link
53 link 最大子数组和 Easy 动态规划 link
56 link 合并区间 Medium 数组 link
72 link 编辑距离 Hard 动态规划 link
73 link 矩阵置零 Medium 数组 link
74 link 搜索二维矩阵 Medium 分治法 link
84 link 柱状图中最大的矩形 Hard 单调栈 link
100 link 相同的树 Easy 对称性递归 link
121 link 买卖股票的最佳时机 Easy 动态规划 link
141 link 环形链表 Easy 链表 link
153 link 寻找旋转排序数组中的最小值 Medium 二分查找 link
154 link 寻找旋转排序数组中的最小值 II Hard 二分查找 link
189 link 轮转数组 Medium 双指针 link
191 link 位1的个数 Easy 位运算 link
206 link 反转链表 Easy 链表 link
208 link 实现 Trie (前缀树) 字典树 link
229 link 求众数 II Medium 哈希表 link
231 link 2 的幂 Easy 位运算 link
237 link 删除链表中的节点 Easy 链表 link
283 link 移动零 Easy 双指针 link
299 link 猜数字游戏 Medium 哈希表 link
316 link 去除重复字母 Medium 单调栈 link
319 link 灯泡开关 Medium 数学推导 link
321 link 拼接最大数 Hard 单调栈 link
322 link 零钱兑换 Medium 动态规划 link
367 link 有效的完全平方数 Easy 分治法 link
372 link 超级次方 Medium link
402 link 移掉 K 位数字 Medium 单调栈 link
410 link 分割数组的最大值 Hard 数组 link
416 link 分割等和子集 Medium 动态规划 link
443 link 压缩字符串 Medium 数组 link
430 link 扁平化多级双向链表 Medium 链表 link
447 link 回旋镖的数量 Medium 哈希表 link
453 link 最小操作次数使数组元素相等 Medium 数组 link
474 link 一和零 Medium 01背包问题 link
494 link 目标和 Medium 01背包问题 link
515 link 在每个树行中找最大值 Medium 二叉树 link
517 link 超级洗衣机 Hard 二叉树 link
518 link 零钱兑换 II Medium 动态规划 link
524 link 通过删除字母匹配到字典里最长单词 Medium 双指针 link
557 link 反转字符串中的单词 III Easy 双指针 link
560 link 和为 K 的子数组 Medium 前缀和 link
566 link 重塑矩阵 Easy 数组 link
567 link 字符串的排列 Medium 数组 link
575 link 分糖果 Easy 贪心 link
583 link 两个字符串的删除操作 Medium 动态规划 link
605 link 种花问题 Easy 贪心 link
684 link 冗余连接 Medium 并查集 link
721 link 账户合并 Medium 并查集 link
695 link 岛屿的最大面积 Medium 深度优先搜索 link
704 link 二分查找 Easy 二分查找 link
709 link 转换成小写字母 Easy 位运算 link
712 link 两个字符串的最小ASCII删除和 Medium 动态规划 link
725 link 分隔链表 Medium 链表 link
743 link 网络延迟时间 Medium 最短路径 link
786 link 第 K 个最小的素数分数 Hard 二分查找 link
787 link K 站中转内最便宜的航班 Medium 动态规划 link
876 link 链表的中间结点 Easy 双指针 link
879 link 盈利计划 Hard 01背包问题 link
934 link 最短的桥 Medium 图论 link
1218 link 最长定差子序列 Medium 动态规划 link
1293 link 网格中的最短路径 Hard 广度优先搜索 link
1312 link 让字符串成为回文串的最少插入次数 Hard 动态规划 link
1325 link 删除给定值的叶子节点 Medium 二叉树 link
1326 link 灌溉花园的最少水龙头数目 Hard 动态规划 link
1449 link 数位成本和为目标值的最大数字 Hard 动态规划 link
1541 link 平衡括号字符串的最少插入次数 Medium 贪心 link
1647 link 字符频次唯一的最小删除次数 Medium 哈希表 link
1665 link 完成所有任务的最少初始能量 Hard 贪心 link

剑指Offer系列

下表则为LeetCode**版额外题库,如剑指Offer系列。

题目ID 原题链接 题目全名 题目难度 题目类型 题解(点击下方)
剑指Offer 03 link 数组中重复的数字 Easy 数组 link
剑指Offer 04 link 二维数组中的查找 Medium 查找 link
剑指Offer 12 link 矩阵中的路径 Medium 回溯 link
剑指Offer 14 link 剪绳子 Medium 动态规划 link
剑指Offer 16 link 数值的整数次方 Medium 快速幂 link
剑指Offer 20 link 表示数值的字符串 Medium 字符串 link
剑指Offer 25 link 合并两个排序的链表 Easy 双指针 link
剑指Offer 26 link 树的子结构 Medium 二叉树 link
剑指Offer 27 link 二叉树的镜像 Easy 二叉树 link
剑指Offer 28 link 对称的二叉树 Easy 二叉树 link
剑指Offer 31 link 栈的压入、弹出序列 Medium link
剑指Offer 32 link 从上到下打印二叉树 Medium 二叉树 link
剑指Offer 34 link 二叉树中和为某一值的路径 Medium 回溯法 link
剑指Offer 35 link 复杂链表的复制 Medium 链表 link
剑指Offer 36 link 二叉搜索树与双向链表 Medium 二叉树 link
剑指Offer 38 link 字符串的排列 Medium 回溯 link
剑指Offer 39 link 数组中出现次数超过一半的数字 Easy Moore算法 link
剑指Offer 42 link 连续子数组的最大和 Easy 动态规划 link
剑指Offer 43 link 1~n 整数中 1 出现的次数 Hard 数学 link
剑指Offer 49 link 丑数 Medium 动态规划 link
剑指Offer 51 link 数组中的逆序对 Hard 归并/树状数组 link
剑指Offer 56-1 link 数组中数字出现的次数 Medium 位运算 link
剑指Offer 56-2 link 数组中数字出现的次数 Medium 位运算 link
剑指Offer 57 link 和为s的两个数字 Easy 双指针 link
剑指Offer 59 link 滑动窗口的最大值 Medium 单调队列 link
剑指Offer 62 link 圆圈中最后剩下的数字 Easy 动态规划 link
剑指Offer 63 link 股票的最大利润 Medium 动态规划 link
剑指Offer 66 link 构建乘积数组 Medium 动态规划 link
剑指Offer 69 link 山峰数组的顶部 Easy 分治法 link

LeetCode 热题 HOT 100 系列

下表则为LeetCode 热题 HOT 100 系列。

题目ID 原题链接 题目全名 题目难度 题目类型 题解(点击下方)
0004 link 寻找两个正序数组的中位数 Hard 二分查找 link
0005 link 最长回文子串 Medium 动态规划、Manacher算法 link
0437 link 路径总和(三) Medium 前缀和 link

额外题库

以下为不属于上述题库的其他典型题,这部分有的题目来自笔试或者面试原题,不提供原题链接。

题目ID 原题链接 题目全名 题目难度 题目类型 题解(点击下方)
Other 01 link 子数组分割最大得分 Hard 数组 link
Other 02 link 不许ac Easy 编辑距离 link
Other 03 link 最大K乘积 Medium 动态规划 link
Other 04 link 9的倍数的子序列 Hard 动态规划 link