本项目用于记录个人LeetCode刷题代码,采用python语言,代码包含一定注释
堆
leetcode题目 | Python代码 | 难度 |
---|---|---|
(堆or线性dp)32. 最长有效括号 | longest-valid-parentheses | 困难 |
(大小根堆)295. 数据流的中位数 | find-median-from-data-stream | 困难 |
栈
leetcode题目 | Python代码 | 难度 |
---|---|---|
20. 有效的括号 | valid-parentheses | 简单 |
堆优化
leetcode题目 | Python代码 | 难度 |
---|---|---|
1801. 积压订单中的订单总数 | number-of-orders-in-the-backlog | 中等 |
(堆排序)23. 合并K个升序链表 | merge-k-sorted-lists | 困难 |
313. 超级丑数 | super-ugly-number | 中等 |
(堆排序or哈希)128. 最长连续序列 | longest-consecutive-sequence | 中等 |
(堆排序)面试题 17.14. 最小K个数 | smallest-k-lcci | 中等 |
DFS
拓扑排序
leetcode题目 | Python代码 | 难度 |
---|---|---|
(深搜or拓扑)802. 找到最终的安全状态 | find-eventual-safe-states | 中等 |
最短路
leetcode题目 | Python代码 | 难度 |
---|---|---|
(朴素dijkstraorSPFA)743. 网络延迟时间 | network-delay-time | 中等 |
(bellman_ford)787. K 站中转内最便宜的航班 | cheapest-flights-within-k-stops | 中等 |
最小生成树
leetcode题目 | Python代码 | 难度 |
---|---|---|
1489. 找到最小生成树里的关键边和伪关键边 | find-critical-and-pseudo-critical-edges-in-minimum-spanning-tree | 困难 |
快速幂
leetcode题目 | Python代码 | 难度 |
---|---|---|
(矩阵快速幂or线性DPor记忆化DP)552. 学生出勤记录 II | student-attendance-record-ii | 困难 |
线性DP
leetcode题目 | Python代码 | 难度 |
---|---|---|
10. 正则表达式匹配 | regular-expression-matching | 困难 |
53. 最大子序和 | maximum-subarray | 简单 |
(素朴DPor01背包DPor数学)62. 不同路径 | unique-paths | 中等 |
64. 最小路径和 | minimum-path-sum | 中等 |
72. 编辑距离 | edit-distance | 困难 |
96. 不同的二叉搜索树 | unique-binary-search-trees | 中等 |
区间DP
leetcode题目 | Python代码 | 难度 |
---|---|---|
5. 最长回文子串 | longest-palindromic-substring | 中等 |
516. 最长回文子序列 | longest-palindromic-subsequence | 中等 |
计数类DP
leetcode题目 | Python代码 | 难度 |
---|---|---|
70. 爬楼梯 | climbing-stairs | 简单 |
446. 等差数列划分 II - 子序列 | arithmetic-slices-ii-subsequence | 困难 |
数位统计DP
leetcode题目 | Python代码 | 难度 |
---|---|---|
233. 数字 1 的个数 | number-of-digit-one | 困难 |
状态压缩DP
leetcode题目 | Python代码 | 难度 |
---|---|---|
(状压DPorBFS求不带权图Hamilton最短路)847. 访问所有节点的最短路径 | shortest-path-visiting-all-nodes | 困难 |
(状压DPorDFS)526. 优美的排列 | beautiful-arrangement | 中等 |
记忆化搜索
leetcode题目 | Python代码 | 难度 |
---|---|---|
329. 矩阵中的最长递增路径 | longest-increasing-path-in-a-matrix | 困难 |
576. 出界的路径数 | out-of-boundary-paths | 中等 |
1646. 获取生成数组中的最大值 | get-maximum-in-generated-array | 简单 |
leetcode题目 | Python代码 | 难度 |
---|---|---|
1509. 三次操作后最大值与最小值的最小差 | minimum-difference-between-largest-and-smallest-value-in-three-moves | 中等 |
55. 跳跃游戏 | jump-game | 中等 |
881. 救生艇 | boats-to-save-people | 中等 |
基础数学
leetcode题目 | Python代码 | 难度 |
---|---|---|
231. 2 的幂 | power-of-two | 简单 |
342. 4的幂 | power-of-four | 简单 |
168. Excel表列名称 | excel-sheet-column-title | 简单 |
1137. 第 N 个泰波那契数 | n-th-tribonacci-number | 简单 |
(曼哈顿距离)789. 逃脱阻碍者 | escape-the-ghosts | 中等 |
进阶数学
leetcode题目 | Python代码 | 难度 |
---|---|---|
483. 最小好进制 | smallest-good-base | 困难 |
算法
leetcode题目 | Python代码 | 难度 |
---|---|---|
(Boyer-Moore 投票算法)面试题 17.10. 主要元素 | find-majority-element-lcci | 简单 |
(扫描线)218. 天际线问题 | the-skyline-problem | 困难 |
区间合并
leetcode题目 | Python代码 | 难度 |
---|---|---|
1893. 检查是否区域内所有整数都被覆盖 | check-if-all-the-integers-in-a-range-are-covered | 简单 |
排序
leetcode题目 | Python代码 | 难度 |
---|---|---|
274. H 指数 | h-index | 中等 |
(排序or二分)275. H 指数 II | h-index-ii | 中等 |
1846. 减小和重新排列数组后的最大元素 | maximum-element-after-decreasing-and-rearranging | 中等 |
面试题 10.02. 变位词组 | group-anagrams-lcci | 中等 |
1337. 矩阵中战斗力最弱的 K 行 | the-k-weakest-rows-in-a-matrix | 简单 |
二分
链表
数组和字符串
树
哈希表
双指针
leetcode题目 | Python代码 | 难度 |
---|---|---|
424. 替换后的最长重复字符 | longest-repeating-character-replacement | 中等 |
滑动窗口
leetcode题目 | Python代码 | 难度 |
---|---|---|
(大小根堆)480. 滑动窗口中位数 | sliding-window-median | 困难 |
(双左指针)992. K个不同整数的子数组 | subarrays-with-k-different-integers | 困难 |
(哈希or双左指针)930. 和相同的二元子数组 | binary-subarrays-with-sum | 中等 |
1838. 最高频元素的频数 | frequency-of-the-most-frequent-element | 中等 |
并查集(图)
动态规划
贪心
leetcode题目 | Python代码 | 难度 |
---|---|---|
1353. 最多可以参加的会议数目 | maximum-number-of-events-that-can-be-attended | 中等 |
1833. 雪糕的最大数量 | maximum-ice-cream-bars | 中等 |
1877. 数组中最大数对和的最小值 | minimize-maximum-pair-sum-in-array | 中等 |
栈
leetcode题目 | Python代码 | 难度 |
---|---|---|
1190. 反转每对括号间的子串 | reverse-substrings-between-each-pair-of-parentheses | 中等 |
(栈+哈希)726. 原子的数量 | number-of-atoms | 困难 |
自动机
leetcode题目 | Python代码 | 难度 |
---|---|---|
65. 有效数字 | valid-number | 困难 |
搜索
leetcode题目 | Python代码 | 难度 |
---|---|---|
(广度)752. 打开转盘锁 | open-the-lock | 中等 |
(广度)773. 滑动谜题 | sliding-puzzle | 困难 |
(广度)909. 蛇梯棋 | snakes-and-ladders | 中等 |
(建图+广度)815. 公交路线 | bus-routes | 困难 |
(广、深、动规)LCP 07. 传递信息 | chuan-di-xin-xi | 简单 |
(广or深)671. 二叉树中第二小的节点 | second-minimum-node-in-a-binary-tree | 简单 |
(邻接表+DFS)863. 二叉树中所有距离为 K 的结点 | all-nodes-distance-k-in-binary-tree | 中等 |
C++标准库方法
leetcode题目 | Python代码 | 难度 |
---|---|---|
31. 下一个排列 | next-permutation | 中等 |
剑指 Offer 38. 字符串的排列 | zi-fu-chuan-de-pai-lie-lcof | 中等 |
周赛
leetcode题目 | Python代码 | 难度 |
---|---|---|
5809. 长度为 3 的不同回文子序列 | unique-length-3-palindromic-subsequences | 中等 |