Skip to content

lidianxiang/leetcode_CPP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

leetcode with CPP

1.数组

NO. Title Solution Difficulty Tip
1 两数之和 C++ Easy Mapping
15 三数之和 C++ Medium 排序+双指针
26 删除排序数组中的重复项 C++ Easy 双指针
27 移除元素 C++ Easy
33 搜索旋转排序数组 C++ Medium 二分查找
34 在排序数组中查找元素的第一个和最后一个位置 C++ Medium 二分查找
35 搜索插入位置 C++ Easy 二分查找
41 缺失的第一个正数 C++ Hard 哈希
48 旋转图像 C++ Medium 辅助数组、水平翻转+对角线翻转
53 最大子序和 C++ Easy 动态规划
54 螺旋矩阵 C++ Medium 模拟法
66 加一 C++ Easy
88 合并两个有序数组 C++ Easy
118 杨辉三角 C++ Easy
119 杨辉三角II C++ Easy 动态规划
121 买卖股票的最佳时机 C++ Easy
122 买卖股票的最佳时机II C++ Easy 贪心
128 最长连续序列 C++ Medium 哈希表
135 分发糖果 C++ Hard 两次遍历
167 两数之和II-数组有序数组 C++ Easy 双指针
169 多数元素 C++ Easy 哈希、众数、Boyer-Moore
179 最大数 C++ Medium 贪心
200 岛屿数量 C++ Medium bfs、dfs
207 课程表 C++ Medium bfs、dfs
209 长度最小的子数组 C++ Medium 滑动窗口
210 课程表II C++ Medium dfs+栈
215 数组中的第K个最大元素 C++ Medium 快速选择
216 组合总和 C++ Medium 回溯
217 存在重复元素 C++ Easy set、排序、哈希
219 存在重复元素II C++ Easy 哈希、滑动窗口
221 最大正方形 C++ Medium 动态规划
223 矩形面积 C++ Medium
225 用队列实现栈 C++ Easy
228 区间汇总 C++ Easy
229 求众数 C++ Medium 哈希表、Moore Voting
239 滑动窗口的最大值 C++ Hard 优先队列
268 丢失的数字 C++ Easy 数学、异或
283 移动零 C++ Easy 双指针
295 数据流的中位数 C++ Hard sort排序、插入排序
303 区域和检索-数组不可变 C++ Easy 前缀和
321 拼接最大数 C++ Hard 单调栈
363 矩形区域不超过K的最大数值和 C++ Hard 有序集合
395 至少有k个重复字符的最长子串 C++ Medium 分治
498 对角线遍历 C++ Medium 模拟
509 斐波那契数 C++ Easy
523 连续的子数组和 C++ Medium 双指针、前缀和
560 和为K的子数组 C++ Medium 枚举、前缀和+哈希表
867 转置矩阵 C++ Easy
912 排序数组 C++ Medium 快速排序、堆排序、归并排序
977 有序数组的平方 C++ Easy 双指针
1588 所有奇数长度子数组的和 C++ Easy 动态规划、滑动窗口
剑指 offer59 队列的最大值 C++ Medium 双端队列

2.链表

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

3.树

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

4.字符串

NO. Title Solution Difficulty Tip
3 无重复字符的最长子串 C++ Medium 哈希集合、滑动窗口+双指针
5 最长回文子串 C++ Medium 暴力求解、动态规划、中心扩展法
6 Z字形变换 C++ Medium 模拟法
8 字符串转换整数 C++ Medium 遍历+标志位
12 整数转罗马数字 C++ Medium
13 罗马数字转整数 C++ Easy 模拟法
14 最长公共前缀 C++ Easy 横向扫描
17 电话号码的字母组合 C++ Medium 回溯
20 有效的括号 C++ Easy
22 括号生成 C++ Medium 递归
28 实现strStr() C++ Easy KMP
38 外观数列 C++ Easy 递归法
58 最后一个单词的长度 C++ Easy 模拟法
67 二进制求和 C++ Easy
125 验证回文串 C++ Easy 双指针法
151 翻转字符串里的单词 C++ Medium
208 实现Trie前缀树 C++ Medium 回溯
211 添加和搜索单词-数据结构设计 C++ Medium
227 基本计算器 C++ Medium
239 滑动窗口最大值 C++ Hard 优先队列
306 累加数 C++ Medium 回溯
344 反转字符串 C++ Easy 双指针法
345 反转字符串中的元音字母 C++ Easy 双指针法
383 赎金信 C++ Easy 哈希表
387 字符串中的第一个唯一字符 C++ Easy 哈希表、哈希+队列
392 判断子序列 C++ Easy 双指针、动态规划
401 二进制手表 C++ Easy 位运算
415 字符串相加 C++ Easy 模拟法
434 字符串中的单词数 C++ Easy
459 重复的子字符串 C++ Easy 字符串匹配
520 检测大写字母 C++ Easy 数组存储
521 最长特殊序列I C++ Easy
541 反转字符串II C++ Easy
551 学生出勤记录I C++ Easy find()函数
567 字符串的排列 C++ Medium 滑动窗口
606 根据二叉树创建字符串 C++ Easy 递归法
647 回文子串 C++ Medium 中心扩散法
657 机器人是否返回原点 C++ 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 滑动窗口
剑指 offer-48 最长不含重复字符的子字符串 C++ Medium 滑动窗口

5. 回溯

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

6. 位运算

NO. Title Solution Difficulty Tip
89 格雷编码 C++ Medium 位运算
136 只出现一次的数字 C++ Easy 位运算
137 只出现一次的数字II C++ Medium 位运算
190 颠倒二进制位 C++ Easy 位运算
191 位1的个数 C++ Easy 位运算
201 数字范围按位与 C++ Medium 位运算
231 2的幂 C++ Easy 位运算
260 只出现一次的数字III C++ Medium 位运算
318 最大单词长度乘积 C++ Medium 位运算
342 4的幂 C++ Easy 位运算
371 两整数之和 C++ 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
33 搜索旋转排序数组 C++ Medium 二分查找
69 x的平方根 C++ Easy 二分查找

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

c++版本leetcode

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages