Leetcode solutions in C++ 11
NO. | Title | Solution | Note | Difficulty | Tag |
---|---|---|---|---|---|
1 | 两数之和 | C++ | Note | Easy | 数组 | 哈希表 |
2 | 两数相加 | C++ | Note | Medium | 链表 | 数学 |
3 | 字符串中不含重复字符的最长子串 | C++ | Note | Medium | 字符串 |
4 | 两个排序数组的中值 | C++ | Note | Hard | 数组 | 二分查找 |
5 | 最长回文子串 | C++ | Note | Medium | 字符串 | 动态规划 |
7 | 反转整数 | C++ | Note | Easy | 数学 | 鲁棒性 |
8 | 字符串转整数(atoi) | C++ | Note | Medium | 字符串 | 数学 | 鲁棒性 |
10 | 正则表达式匹配 | C++ | Note | Hard | 字符串 | 动态规划 |
11 | 盛最多水的容器 | C++ | Note | Medium | 数组 | 双指针 |
13 | 罗马数字转整数 | C++ | Note | Easy | 数学 | 字符串 |
14 | 最长公共前缀 | C++ | Note | Easy | 字符串 |
15 | 三数之和 | C++ | Note | Medium | 数组 | 双指针 |
17 | 电话号码的字符组合 | C++ | Note | Medium | 字符串 |
19 | 删除链表倒数第n个节点 | C++ | Note | Medium | 链表 | 鲁棒性 |
20 | 有效的括号 | C++ | Note | Easy | 字符串 | 栈 |
21 | 合并两个有序链表 | C++ | Note | Easy | 链表 |
22 | n对括号的所有有效形式 | C++ | Note | Medium | 回溯 |
23 | 合并K个有序链表 | C++ | Note | Hard | 链表 | 多路归并 |
24 | 成对交换链表中的节点 | C++ | Note | Medium | 链表 |
26 | 删除有序数组中的冗余元素 | C++ | Note | Easy | 数组 |
27 | 删除数组中值为val的元素 | C++ | Note | Easy | 数组 |
28 | 实现子串查找函数strStr() | C++ | Note | Easy | 字符串 |
29 | 不用乘除取模实现整数除法 | C++ | Note | Medium | 条件限制 |
31 | 数组元素序列中按字典序的下一个序列 | C++ | Note | Medium | 数组 |
33 | 有序数组旋转后的查找 | C++ | Note | Medium | 二分查找 |
34 | 有序数组中查找数字的范围 | C++ | Note | Medium | 二分查找 |
36 | 有效数独 | C++ | Note | Medium | 数组 |
38 | 报数 | C++ | Note | Easy | 字符串 |
39 | 和为target的数字组合(I) | C++ | Note | Medium | 数组 |
40 | 和为target的数字组合(II) | C++ | Note | Medium | 数组 |
41 | 第一个缺失的正数 | C++ | Note | Hard | 查找 |
42 | 接雨水 | C++ | Note | Hard | 数组 |
44 | 通配符匹配 | C++ | Note | Hard | 字符串 | 动态规划 |
45 | 跳步游戏II | C++ | Note | Hard | 动态规划 | BFS |
46 | (不含相同元素的)整形数组的全排列 | C++ | Note | Medium | 全排列 |
47 | (含相同元素的)整形数组的全排列 | C++ | Note | Medium | 全排列 |
48 | 90度旋转图片 | C++ | Note | Medium | 数组 |
49 | 将字符颠倒的字符串分组 | C++ | Note | Medium | 字符串 |
50 | 实现Pow(x,n) | C++ | Note | Medium | 数学 | 鲁棒性 |
53 | 和最大的连续子数组 | C++ | Note | Easy | 数组 |
54 | 顺时针打印矩阵 | C++ | Note | Medium | 数组 |
55 | 跳步游戏 | C++ | Note | Medium | 贪心 |
56 | 区间合并 | C++ | Note | Medium | 排序 |
62 | 左上角到右下角的路径数 | C++ | Note | Medium | 动态规划 |
66 | 数组表示的数字加1 | C++ | Note | Easy | 数组 |
69 | x的平方根 | C++ | Note | Easy | 数学 | 二分查找 | 鲁棒性 |
70 | 爬楼梯 | C++ | Note | Easy | 数组 | 动态规划 |
73 | 设置矩阵中的0 | C++ | Note | Medium | 数组 |
75 | 排序数组中的0、1、2 | C++ | Note | Medium | 数组 |
76 | 最小覆盖子串 | C++ | Note | Hard | 数组 | 滑动窗口 | 双指针 |
78 | 不含重复元素集合的所有子集 | C++ | Note | Medium | 数组 |
79 | 字符矩阵中查找字符串 | C++ | Note | Medium | 数组 | 回溯 |
83 | 删除有序链表的冗余节点 | C++ | Note | Easy | 链表 |
84 | 柱状图中最大的矩形 | C++ | Note | Hard | 数组 | 栈 |
88 | 合并两个有序数组 | C++ | Note | Easy | 数组 |
91 | 数字字符串的解码方式 | C++ | Note | Medium | 字符串 | 动态规划 |
94 | 输出二叉树的中序遍历序列 | C++ | Note | Medium | 二叉树 |
98 | 判断一棵二叉树是否是BST | C++ | Note | Medium | 二叉树 | BST |
101 | 对称二叉树 | C++ | Note | Easy | 二叉树 |
102 | 分层打印二叉树 | C++ | Note | Medium | 二叉树 |
103 | 之字形打印二叉树 | C++ | Note | Medium | 二叉树 |
104 | 二叉树的最大深度 | C++ | Note | Easy | 二叉树 |
105 | 根据前序和中序序列构造二叉树 | C++ | Note | Medium | 二叉树 |
108 | 将有序数组转换为二叉搜索树 | C++ | Note | Easy | 二叉树 |
109 | 将有序链表转换二叉搜索树 | C++ | Note | Medium | 二叉树 |
116 | 将二叉树的每一层串成链表 | C++ | Note | Medium | 二叉树 |
118 | 输出杨辉三角的前n行 | C++ | Note | Easy | 数学 |
121 | 买卖股票的最佳时机 | C++ | Note | Easy | 数组 |
122 | 买卖股票的最佳时机II | C++ | Note | Easy | 数组 |
124 | 二叉树的最大路径和 | C++ | Note | Hard | 二叉树 |
125 | 验证回文串 | C++ | Note | Easy | 字符串 | 双指针 |
127 | 单词阶梯 | C++ | Note | Medium | 字符串 | 图 | BFS |
128 | 最长连续序列 | C++ | Note | Hard | 数组 |
130 | 被包围的区域 | C++ | Note | Medium | 图 | DFS |
131 | 字符串所有子串都是回文的分区 | C++ | Note | Medium | 字符串 | DFS |
134 | 加油站 | C++ | Note | Medium | 数组 | 贪心 |
136 | 只出现一次的数字 | C++ | Note | Easy | 位运算 |
137 | 只出现一次的数字II | C++ | Note | Medium | 位运算 |
138 | 带随机指针的链表复制 | C++ | Note | Medium | 链表 |
139 | 单词拆分I | C++ | Note | Medium | 字符串 | 动态规划 |
140 | 单词拆分II | C++ | Note | Hard | 字符串 | 动态规划 |
141 | 判断链表是否有环 | C++ | Note | Easy | 链表 |
146 | LRU缓存机制 | C++ | Note | Hard | 类设计 |
148 | 链表节点排序 | C++ | Note | Medium | 链表 | 分治 |
149 | 直线上最多的点数 | C++ | Note | Hard | 数学 | 哈希表 |
150 | 逆波兰表达式求值 | C++ | Note | Medium | 数学 | 栈 |
152 | 连续子数组的最大积 | C++ | Note | Medium | 动态规划 |
155 | 最小栈 | C++ | Note | Easy | 类设计 | 栈 |
160 | 两个链表的相交节点 | C++ | Note | Easy | 链表 |
162 | 查找数组中任一峰值的下标 | C++ | Note | Medium | 数组 | 二分查找 |
166 | 求分数的值 | C++ | Note | Medium | 数学 | 鲁棒性 |
169 | 求众数 | C++ | Note | Easy | 数组 |
171 | Excel表列序号 | C++ | Note | Easy | 数学 |
172 | 阶乘后的零 | C++ | Note | Easy | 数学 |
179 | 求整形数组元素拼接出的最大数字 | C++ | Note | Medium | 数组 |
189 | 旋转数组 | C++ | Note | Easy | 数组 |
190 | 颠倒二进制位 | C++ | Note | Easy | 位运算 |
191 | 位1的个数 | C++ | Note | Easy | 位运算 |
198 | 打家劫舍 | C++ | Note | Easy | 动态规划 |
200 | 求岛屿的数量 | C++ | Note | Medium | 图 |
202 | 快乐数 | C++ | Note | Easy | 数学 |
203 | 删除链表中等于给定值的所有节点 | C++ | Note | Easy | 链表 |
204 | 计数质数 | C++ | Note | Easy | 数学 |
206 | 链表反序 | C++ | Note | Easy | 链表 |
207 | 课程安排 | C++ | Note | Medium | 图 | 拓扑排序 |
208 | 实现Trie树(前缀树) | C++ | Note | Medium | 类设计 | Trie树 |
210 | 课程安排II | C++ | Note | Medium | 图 | 拓扑排序 |
212 | 单词搜索II | C++ | Note | Hard | Trie树 | 字符串 |
215 | 数组中第K大的元素 | C++ | Note | Medium | 数组 |
217 | 存在重复元素 | C++ | Note | Easy | 数组 |
218 | 天际线问题 | C++ | Note | Hard | 几何 |
227 | 基础的计算器II | C++ | Note | Medium | 数学 | 鲁棒性 |
230 | BST中第K小的元素 | C++ | Note | Medium | BST |
234 | 回文链表 | C++ | Note | Easy | 链表 |
236 | 二叉树的最低公共祖先 | C++ | Note | Medium | 二叉树 |
237 | 删除链表中的节点 | C++ | Note | Easy | 链表 |
238 | 除自身外的乘积数组 | C++ | Note | Medium | 数组 |
239 | 滑动窗口的最大值 | C++ | Note | Hard | 数组 |
240 | 二维矩阵中查找元素 | C++ | Note | Medium | 数组 |
242 | 有效的字母异位词 | C++ | Note | Easy | 字符串 |
268 | 缺失数字 | C++ | Note | Easy | 数组 | 数学 | 位运算 |
279 | 完美平方数 | C++ | Note | Medium | 动态规划 |
283 | 移动零 | C++ | Note | Easy | 数组 |
287 | 找出数组中的冗余数字 | C++ | Note | Medium | 数组 | 二分查找 |
289 | 细胞自动机的下一个状态 | C++ | Note | Medium | 数组 |
295 | 数据流的中位数 | C++ | Note | Hard | 类设计 | 堆 |
297 | 二叉树的序列化与反序列化 | C++ | Note | Hard | 二叉树 |
300 | 数组的最长升序序列 | C++ | Note | Medium | 数组 |
315 | 计算右侧小于当前元素的个数 | C++ | Note | Hard | 分治 | 树状数组 | BST |
322 | 找钱 | C++ | Note | Medium | 数组 | 动态规划 |
324 | 摆动排序II | C++ | Note | Medium | 数组 |
326 | 3的幂 | C++ | Note | Easy | 数学 |
328 | 将链表偶数位置的节点移到尾部 | C++ | Note | Medium | 链表 |
329 | 矩阵中的最长递增路径 | C++ | Note | Hard | DFS |
334 | 数组的三元升序子序列 | C++ | Note | Medium | 数组 |
341 | 扁平化嵌套列表迭代器 | C++ | Note | Medium | 类设计 | 栈 |
344 | 反转字符串 | C++ | Note | Easy | 字符串 |
347 | 出现频率最高的k个数字 | C++ | Note | Medium | 数组 |
350 | 两个数组的交集II | C++ | Note | Easy | 数组 |
371 | 两整数之和 | C++ | Note | Easy | 位运算 | 条件限制 |
378 | 有序矩阵中第K小的元素 | C++ | Note | Medium | 数组 | 二分查找 |
380 | 实现O(1)的插入删除与随机获取 | C++ | Note | Medium | 类设计 |
384 | 打乱数组 | C++ | Note | Medium | 数组 | 洗牌算法 |
387 | 字符串中的第一个唯一字符 | C++ | Note | Easy | 字符串 |
395 | 至少有K个重复字符的最长子串 | C++ | Note | Medium | 字符串 |
412 | Fizz Buzz | C++ | Note | Easy | |
454 | 四数相加II | C++ | Note | Medium | 数组 | 哈希表 |
695 | 岛屿的最大面积 | C++ | Note | Easy | 图 |