Skip to content

lidianxiang/leetcode_cpp_python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

leetcode_cpp_python3

1.数组

NO. Title Solution Difficulty Tip
1 两数之和 C++ Easy Mapping
11 盛最多水的容器 Python Medium 双指针
15 三数之和 C++
Python
Medium 排序+双指针
16 最接近的三数之和 Python Medium 排序+双指针
18 四数之和 Python Medium 排序+双指针
20 有效的括号 Python Easy
26 删除排序数组中的重复项 C++
Python
Easy 双指针
27 移除元素 C++
Python
Easy
31 下一个排列 Python Medium
33 搜索旋转排序数组 C++
Python
Medium 二分查找
34 在排序数组中查找元素的第一个和最后一个位置 C++
Python
Medium 二分查找
35 搜索插入位置 C++
Python
Easy 二分查找
38 外观数列 Python Medium 递归、非递归
41 缺失的第一个正数 C++ Hard 哈希
48 旋转图像 C++
Python
Medium 辅助数组、水平翻转+对角线翻转
53 最大子序和 C++
Python
Easy 动态规划
54 螺旋矩阵 C++
Python
Medium 模拟法
59 螺旋矩阵II Python Medium 模拟法
66 加一 C++
Python
Easy
80 删除排序数组中的重复项II Python Medium
88 合并两个有序数组 C++
Python
Easy
118 杨辉三角 C++ Easy
119 杨辉三角II C++ Easy 动态规划
121 买卖股票的最佳时机 C++
Python
Easy
122 买卖股票的最佳时机II C++
Python
Easy 贪心
128 最长连续序列 C++ Medium 哈希表
135 分发糖果 C++ Hard 两次遍历
167 两数之和II-数组有序数组 C++
Python
Easy 双指针
169 多数元素 C++ Easy 哈希、众数、Boyer-Moore
179 最大数 C++
Python
Medium 贪心
189 旋转数组 Python Medium 拼接法、三重旋转
200 岛屿数量 C++ Medium bfs、dfs
207 课程表 C++ Medium bfs、dfs
209 长度最小的子数组 C++
Python
Medium 滑动窗口
210 课程表II C++ Medium dfs+栈
215 数组中的第K个最大元素 C++ Medium 快速选择
216 组合总和 C++ Medium 回溯
217 存在重复元素 C++
Python
Easy set、排序、哈希
219 存在重复元素II C++
Python
Easy 哈希、滑动窗口
221 最大正方形 C++ Medium 动态规划
223 矩形面积 C++ Medium
225 用队列实现栈 C++ Easy
228 区间汇总 C++ Easy
229 求众数 C++ Medium 哈希表、Moore Voting
238 除自身以外数组的乘积 Python Medium
239 滑动窗口的最大值 C++ Hard 优先队列
268 丢失的数字 C++
Python
Easy 数学、异或
283 移动零 C++ Easy 双指针
287 寻找重复数 Python Medium 哈希表、集合、排序
295 数据流的中位数 C++ Hard sort排序、插入排序
303 区域和检索-数组不可变 C++ Easy 前缀和
321 拼接最大数 C++ Hard 单调栈
324 摆动排序II Python Medium
334 递增的三元子序列 C++ Medium
349 两个数组的交集 Python Easy 哈希表
350 两个数组的交集II Python Easy 哈希、排序+双指针
363 矩形区域不超过K的最大数值和 C++ Hard 有序集合
395 至少有k个重复字符的最长子串 C++ Medium 分治
414 第三大的数 Python Easy 滑动窗口
419 甲板上的战舰 Python Medium bfs
448 找到所有数组中消失的数字 Python Easy 集合
485 最大连续1的个数 Python Easy
498 对角线遍历 C++ Medium 模拟
509 斐波那契数 C++ Easy
523 连续的子数组和 C++ Medium 双指针、前缀和
532 数组中的K-diff数对 Python Medium 集合
560 和为K的子数组 C++
Python
Medium 枚举、前缀和+哈希表
561 数组拆分I Python Easy
566 重塑矩阵 Python Easy
581 最短无序连续子数组 Python Medium
605 种花问题 Python Easy
628 三个数的最大乘积 Python Easy
643 子数组最大平均数I Python Easy 滑动窗口
661 图片平滑器 Python Easy
665 非递减数列 Python Medium
674 最长连续递增序列 Python Easy
697 数组的度 Python Easy
717 1比特与2比特字符 Python Easy
724 寻找数组的中心索引 Python Easy
746 使用最小花费爬楼梯 Python Easy
747 至少是其他数字两倍的最大数 Python Easy
766 托普利茨矩阵 Python Easy
830 较大分组的位置 Python Easy 双指针
867 转置矩阵 C++ Easy
912 排序数组 C++ Medium 快速排序、堆排序、归并排序
977 有序数组的平方 C++ Easy 双指针
1588 所有奇数长度子数组的和 C++ Easy 动态规划、滑动窗口
剑指 offer59 队列的最大值 C++ Medium 双端队列

2.链表

NO. Title Solution Difficulty Tip
2 两数相加 C++
Python
Medium 模拟法
19 删除链表的倒数第N个节点 C++
Python
Medium 快慢指针
21 合并两个有序链表 C++
Python
Easy 递归法、迭代法
23 合并K个升序链表 C++ Hard 优先队列、分治合并
24 两两交换链表的节点 C++
Python
Medium 递归法、迭代法
25 K个一组翻转链表 C++
Python
Hard
61 旋转链表 C++
Python
Medium 双指针法
82 删除排序链表中的重复元素II C++
Python
Medium 双指针法、迭代法
83 删除排序链表中的重复元素 C++
Python
Easy 单指针法、双指针法、迭代法
86 分隔链表 C++
Python
Medium 双指针法
92 反转链表II C++
Python
Medium 双指针法
109 有序链表转换为二叉搜索树 Python Medium
138 复制带随机指针的链表 Python Medium 哈希、迭代
141 环形链表 C++
Python
Easy 哈希、快慢指针法
142 环形链表II C++
Python
Medium 哈希、快慢指针
143 重排链表 C++
Python
Medium 线性表、寻找链表中点+逆序+合并
147 对链表进行插入排序 C++
Python
Medium
148 排序链表 C++
Python
Medium 快慢指针+递归法
160 相交链表 C++
Python
Easy 双指针法、哈希表法
203 移除链表的元素 C++
Python
Easy 使用哨兵节点做伪节点
206 反转链表 C++
Python
Easy 双指针法
234 回文链表 C++
Python
Easy vector容器+双指针
237 删除链表中的节点 C++
Python
Easy 快慢指针法
328 奇偶链表 C++ Medium 双指针法
445 两数相加II C++ Medium
707 设计链表 C++ Medium
876 链表的中间节点 C++
Python
Easy 数组法、单指针法、快慢指针法
1019 链表中的下一个更大节点 C++ Medium
1290 二进制链表转整数 C++
Python
Easy 模拟法、位运算
剑指 offer06 从尾到头打印链表 C++ Easy 递归法
剑指 offer22 链表中的倒数第K个节点 C++ Easy 快慢指针
程序员面试金典 02.03.删除中间节点 Python Easy

3.树

NO. Title Solution Difficulty Tip
94 二叉树的中序遍历 C++
Python
Medium 迭代法、递归法
95 不同的二叉搜索树II C++
Python
Medium 递归法
96 不同的二叉搜索树 C++
Python
Medium 动态规划
98 验证二叉搜索树 C++
Python
Medium 递归法
99 恢复二叉搜索树 C++
Python
Hard 模拟法
100 相同的树 C++
Python
Easy DFS、BFS
101 对称二叉树 C++
Python
Easy 递归法、迭代法
102 二叉树的层序遍历 C++
Python
Medium BFS
103 二叉树的锯齿形层次遍历 C++
Python
Medium DFS递归法、BFS迭代法
104 二叉树的最大深度 C++
Python
Easy BFS、DFS
105 从前序和中序遍历序列构造二叉树 C++
Python
Medium 递归法、迭代法
106 从中序和后序遍历序列构造二叉树 C++
Python
Medium 递归法、迭代法
107 二叉树的层次遍历II C++ Easy BFS
108 将有序数组转换为二叉搜索树 C++
Python
Easy 中序遍历
110 平衡二叉树 C++
Python
Easy 递归法
111 二叉树的最小深度 C++
Python
Easy BFS、DFS
112 路径总和 C++
Python
Easy BFS、DFS
113 路径总和II C++
Python
Medium dfs递归
114 二叉树展开为链表 C++
Python
Medium 递归法、迭代法
116 填充每个节点的下一个右侧节点的指针 C++ Medium 层次遍历
117 填充每个节点的下一个右侧节点的指针II C++ Medium 层次遍历
124 二叉树的最大路径和 Python Hard 递归法
144 二叉树的前序遍历 C++
Python
Medium 迭代法、递归法
145 二叉树的后序遍历 C++
Python
Medium 递归法、迭代法
199 二叉树的右视图 C++
Python
Medium 层次遍历
222 完全二叉树的节点个数 C++ Medium 递归法
226 翻转二叉树 C++ Easy 递归法
230 二叉搜索树中的第K小的元素 C++
Python
Medium 中序遍历、递归+二分查找
235 二叉搜索树的最近公共祖先 C++
Python
Easy 迭代法
236 二叉树的最近公共祖先 Python Medium 递归法
257 二叉树的所有路径 C++
Python
Easy BFS、DFS
297 二叉树的序列化和反序列化 C++ Hard 迭代法
404 左子树之和 C++
Python
Easy DFS、BFS
429 N叉树的层次遍历 C++ Medium BFS
437 路径总和III Python Medium DFS
450 删除二叉搜索树中的节点 C++ Medium 递归法
501 二叉搜索树中的众数 C++
Python
Easy dfs中序遍历
508 出现次数最多的子树元素和 C++ Medium 后序遍历递归法
513 找树最下角的值 C++ Medium 递归法、层次遍历
515 在每个树行中找最大值 C++ Medium 层次遍历
530 二叉搜索树的最小绝对差 C++
Python
Easy dfs递归
538 把二叉搜索树转换为累加树 Python Medium
543 二叉树的直径 C++
Python
Easy 递归法
559 N叉树的最大深度 C++
Python
Medium 递归法、迭代法
563 二叉树的坡度 C++ Easy DFS
572 另一个树的子树 C++
Python
Easy dfs递归法
589 N叉树的前序遍历 C++
Python
Easy 递归法、迭代法
590 N叉树的后序遍历 C++
Python
Easy 递归法、迭代法
617 合并二叉树 C++ Easy 递归法、迭代法
623 在二叉树中增加一行 C++ Medium 层次遍历
637 二叉树的层平均值 C++ Easy BFS迭代法
652 寻找重复的子树 C++ Medium dfs
653 两数之和IV-输入BST C++
Python
Easy 中序遍历+双指针
654 最大二叉树 C++ Medium 递归法
662 二叉树最大宽度 C++ Medium 层次遍历
687 最长同值路径 Python Medium 递归
700 二叉搜索树中的搜索 Python Easy
701 二叉搜索树中的插入操作 C++ Medium 模拟法
783 二叉搜索树节点最小距离 Python Easy dfs
814 二叉树的剪枝 C++ Medium 递归法
889 根据前序和后序遍历构造二叉树 C++ Medium 递归法
958 二叉树的完全性检验 C++ Medium BFS
965 单值二叉树 C++ Easy 递归法

4.字符串

NO. Title Solution Difficulty Tip
3 无重复字符的最长子串 C++
Python
Medium 哈希集合、滑动窗口+双指针
5 最长回文子串 C++
Python
Medium 暴力求解、动态规划、中心扩展法
6 Z字形变换 C++
Python
Medium 模拟法
7 整数反转 Python Medium 模拟法
8 字符串转换整数 C++
Python
Medium 遍历+标志位
12 整数转罗马数字 C++
Python
Medium
13 罗马数字转整数 C++
Python
Easy 模拟法
14 最长公共前缀 C++
Python
Easy 横向扫描
17 电话号码的字母组合 C++ Medium 回溯
20 有效的括号 C++ Easy
22 括号生成 C++ Medium 递归
28 实现strStr() C++
Python
Easy KMP
30 串联所有单词的子串 Python Hard 哈希表、滑动窗口
32 最长有效括号 Python Hard 动态规划、栈
38 外观数列 C++ Easy 递归法
49 字母异位词分组 Python Medium 字典映射、数组计数
58 最后一个单词的长度 C++
Python
Easy 模拟法
65 有效数字 Python Hard 正则表达式
67 二进制求和 C++ Easy
125 验证回文串 C++
Python
Easy 双指针法
139 单词拆分 Python Medium 动态规划
150 逆波兰表达式求值 Python Medium
151 翻转字符串里的单词 C++ Medium
205 同构字符串 Python Easy 哈希表
208 实现Trie前缀树 C++ Medium 回溯
211 添加和搜索单词-数据结构设计 C++ Medium
227 基本计算器 C++ Medium
239 滑动窗口最大值 C++ Hard 优先队列
242 有效的字母异位词 Python Easy set函数、字典dict
290 单词规律 Python Easy 哈希表、map函数
306 累加数 C++ Medium 回溯
344 反转字符串 C++ Easy 双指针法
345 反转字符串中的元音字母 C++
Python
Easy 双指针法
383 赎金信 C++
Python
Easy 哈希表
387 字符串中的第一个唯一字符 C++ Easy 哈希表、哈希+队列
392 判断子序列 C++ Easy 双指针、动态规划
401 二进制手表 C++ Easy 位运算
412 Fizz Buzz Python Easy 模拟法、哈希表
415 字符串相加 C++
Python
Easy 模拟法
434 字符串中的单词数 C++ Easy
459 重复的子字符串 C++ Easy 字符串匹配
520 检测大写字母 C++ Easy 数组存储
521 最长特殊序列I C++ Easy
541 反转字符串II C++ Easy
551 学生出勤记录I C++ Easy find()函数
557 反转字符串中的单词II Python Easy
567 字符串的排列 C++ Medium 滑动窗口
606 根据二叉树创建字符串 C++ Easy 递归法
647 回文子串 C++ Medium 中心扩散法
657 机器人是否返回原点 C++ Easy
680 验证回文字符串II Python Easy
696 计数二进制子串 C++ Easy 按字符分组
709 转换成小写字母 C++ Easy 位运算、利用ASCII码
788 旋转数字 C++ Easy
804 唯一的莫尔斯密码 C++ Easy 遍历
819 最常见的单词 C++ Easy 哈希+集合
824 山羊拉丁文 C++ Easy
859 亲密字符串 C++ Easy 双指针
893 特殊等价字符串组 C++ Easy 集合set
917 仅仅反转字母 C++ Easy 双指针
925 长按键入 C++ Easy 双指针
929 独特的电子邮件地址 C++ Easy
937 重新排列日志文件 C++ Easy stable_sort
978 最长湍流子数组 C++ Medium 滑动窗口
1108 IP地址无效化 Python Easy
1143 最长公共子序列 Python Medium 动态规划
剑指 offer-48 最长不含重复字符的子字符串 C++ Medium 滑动窗口

5. 回溯

NO. Title Solution Difficulty Tip
17 电话号码的字母组合 C++
Python
Medium 回溯
22 括号生成 C++
Python
Medium 回溯
39 组合总和 C++
Python
Meidum 回溯
40 组合总和II C++
Python
Meidum 回溯
46 全排列 C++
Python
Medium 回溯
47 全排列II C++
Python
Medium 回溯
51 N皇后 C++ Hard 回溯
60 排列序列 Python Hard 回溯
77 组合 C++ Medium 回溯
78 子集 C++
Python
Meidum 回溯
79 单词搜索 C++ Medium 回溯
90 子集II C++ Medium 回溯
93 复原IP地址 C++ Medium 回溯
131 分割回文串 C++
Python
Medium 回溯
140 单词拆分 C++ Hard 回溯
216 组合总和III C++ Medium 回溯
306 累加数 C++ Medium 回溯
784 字母大小写全排列 C++ Medium 回溯
797 所有可能的路径 C++ Medium 回溯

6. 位运算

NO. Title Solution Difficulty Tip
29 两数相除 Python Medium 位运算
89 格雷编码 C++
Python
Medium 位运算
136 只出现一次的数字 C++ Easy 位运算
137 只出现一次的数字II C++ Medium 位运算
190 颠倒二进制位 C++
Python
Easy 位运算
191 位1的个数 C++
Python
Easy 位运算
201 数字范围按位与 C++ Medium 位运算
231 2的幂 C++ Easy 位运算
260 只出现一次的数字III C++ Medium 位运算
318 最大单词长度乘积 C++ Medium 位运算
342 4的幂 C++ Easy 位运算
371 两整数之和 C++
Python
Medium 位运算
389 找不同 C++ Easy 位运算
405 数字转换为十六进制数 C++ Easy 位运算
461 汉明距离 C++ Easy 位运算
477 汉明距离总和 C++ Medium 位运算
784 字母大小写全排列 C++ Medium 位运算
1290 二进制链表转整数 C++ Easy 位运算
1486 数组异或操作 C++ Easy 模拟法

7. 前缀树

NO. Title Solution Difficulty Tip
208 实现Trie前缀树 C++ Medium
211 添加和搜索单词-数据结构设计 C++ Medium

8. 动态规划

NO. Title Solution Difficulty Tip
5 最长回文子串 C++ Medium 动态规划、中心扩展法、暴力求解
10 正则表达式匹配 C++ Hard 动态规划
32 最长有效括号 C++ Hard 动态规划、栈
42 接雨水 C++ Hard 暴力求解、单调栈、双指针、动态规划
44 通配符 C++ Hard 动态规划
53 最大子序和 C++ Easy 动态规划、线段树
62 不同路径 C++ Medium 动态规划
63 不同路径II C++ Medium 动态规划
64 最小路径和 C++ Medium 动态规划
70 爬楼梯 C++ Easy 动态规划
72 编辑距离 C++ Hard 动态规划
85 最大矩形 C++ Hard 动态规划
91 解码方法 C++ Medium 动态规划
97 交错字符串 C++ Medium 动态规划
115 不同的子序列 C++ Hard 动态规划
120 三角形最小路径和 C++ Medium 动态规划
121 买卖股票的最佳时机 C++ Medium 动态规划
122 买卖股票的最佳时机II C++ Medium 动态规划
132 分割回文串 C++ Hard 动态规划
139 单词拆分 C++ Medium 动态规划
152 乘积最大子数组 C++ Medium 动态规划
198 打家劫舍 C++ Medium 动态规划
213 打家劫舍II C++ Medium 动态规划
221 最大正方形 C++ Medium 动态规划
264 丑数II C++ Medium 动态规划
300 最长递增子序列 C++ Medium 动态规划
303 区域和检索-数组不可变 C++ Easy 动态规划
304 区域和检索-矩阵不可变 C++ Medium 动态规划
309 最佳买卖股票时机含冷冻期 C++ Medium 动态规划
322 零钱兑换 C++ Medium 动态规划
337 打家劫舍III C++ Medium 动态规划
376 摆动序列 C++ Medium 动态规划、贪心算法
377 组合总和IV C++ Medium 动态规划
392 判断子序列 C++ Medium 双指针、动态规划
413 等差数列划分 C++ Medium 动态规划
416 分割等和子集 C++ Medium 动态规划
464 我能赢吗 C++ Medium 动态规划
467 环绕字符串中唯一的子字符串 C++ Medium 动态规划
494 目标和 C++ Medium 动态规划、回溯
673 最长递增子序列的个数 C++ Medium 动态规划
698 划分为k个相等的子集 C++ Medium 动态规划、回溯
714 买卖股票的最佳实际含手续费 C++ Medium 动态规划
718 最长重复子数组 C++ Medium 动态规划
746 使用最小花费爬楼梯 C++ Easy 动态规划
801 使序列递增的最小交换次数 C++ Medium 动态规划
931 下降路径最小和 C++ Medium 动态规划
1025 除数博弈 C++ Easy 动态规划
1143 最长公共子序列 C++ Medium 动态规划

9. 二分查找

NO. Title Solution Difficulty Tip
4 寻找两个有序数组的中位数 Python Hard 二分查找
33 搜索旋转排序数组 C++ Medium 二分查找
50 Pow(x,n) Python Medium 二分查找
69 x的平方根 C++ Easy 二分查找
74 搜索二维矩阵 Python Medium 二分查找
81 搜索旋转排序数组II Python Medium 二分查找
162 寻找峰值 Python Medium 二分查找
240 搜索二维矩阵II Python Medium 二分查找

10. 滑动窗口

NO. Title Solution Difficulty Tip
3 无重复字符的最长子串 C++ Medium 双指针+哈希
76 最小覆盖子串 C++ Hard 滑动窗口
209 长度最小的子数组 C++ Medium 滑动窗口
219 存在重复元素 C++ Easy 滑动窗口、哈希
239 滑动窗口的最大值 C++ Hard 滑动窗口
424 替换后的最长重复字符 C++ Medium 滑动窗口
567 字符串的排列 C++ Medium 滑动窗口
978 最长湍流子数组 C++ Medium 滑动窗口
剑指 offer-48 最长不含重复字符的子字符串 C++ Medium 滑动窗口

About

leetcode C++ and python3

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published