Skip to content

OneForward/LeetCode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

LeetCode Solutions

LeetCode

# Title Solution Difficulty
1 两数之和 C++, Go, Java, Typescript, Rust Easy
2 两数相加 Rust Medium
3 无重复字符的最长子串 C++, Go Medium
4 寻找两个正序数组的中位数⭐ C++, C++, Python, Python, Rust Hard
5 最长回文子串 C++, Python, Python Medium
6 Z 字形变换 Rust Medium
7 整数反转 C++ Medium
8 字符串转换整数 (atoi) C++, Rust Medium
10 正则表达式匹配⭐ C++, C++, C++ Hard
11 盛最多水的容器⭐ C++, Rust Medium
12 整数转罗马数字 C++, Rust Medium
13 罗马数字转整数 Python, Rust Easy
15 三数之和 Rust Medium
16 最接近的三数之和 Rust Medium
18 四数之和 Rust Medium
19 删除链表的倒数第 N 个结点⭐ Python, Rust Medium
21 合并两个有序链表 C++, Rust Easy
23 合并K个升序链表 C++, C++, Python Hard
24 两两交换链表中的节点 C++ Medium
25 K 个一组翻转链表 C++, C++, C++ Hard
26 删除有序数组中的重复项 C++, Rust Easy
27 移除元素 C++ Easy
28 实现 strStr() C++ Easy
29 两数相除 C++, C++ Medium
30 串联所有单词的子串 C++, C++ Hard
31 下一个排列 C++ Medium
32 最长有效括号 C++, C++, Python Hard
33 搜索旋转排序数组⭐ C++, C++, Rust Medium
34 在排序数组中查找元素的第一个和最后一个位置 C++ Medium
35 搜索插入位置 C++ Easy
36 有效的数独 C++, Python, Rust Medium
37 解数独 C++ Hard
38 外观数列 C++ Medium
39 组合总和 C++, C++ Medium
40 组合总和 II C++ Medium
41 缺失的第一个正数 C++, C++ Hard
42 接雨水 C++, C++ Hard
43 字符串相乘 Rust Medium
44 通配符匹配 C++ Hard
45 跳跃游戏 II C++ Medium
46 全排列 C++, C++, C++ Medium
47 全排列 II C++, C++ Medium
48 旋转图像 C++ Medium
49 字母异位词分组 C++, C++ Medium
51 N 皇后 C++ Hard
54 螺旋矩阵 C++, Python, Rust Medium
55 跳跃游戏 Python Medium
56 合并区间 C++ Medium
57 插入区间 C++, Rust Medium
58 最后一个单词的长度 C++ Easy
59 螺旋矩阵 II C++, Python, Rust Medium
60 排列序列 C++, Python Hard
61 旋转链表 C++ Medium
62 不同路径 C++ Medium
63 不同路径 II C++ Medium
64 最小路径和 C++ Medium
65 有效数字 C++, C++, Rust Hard
68 文本左右对齐 C++, Python Hard
70 爬楼梯 C++ Easy
71 简化路径 C++ Medium
73 矩阵置零 C++ Medium
74 搜索二维矩阵 C++, C++ Medium
75 颜色分类 C++ Medium
76 最小覆盖子串⭐ C++ Hard
77 组合 C++ Medium
78 子集 C++ Medium
79 单词搜索 C++, C++ Medium
80 删除有序数组中的重复项 II C++ Medium
81 搜索旋转排序数组 II C++, C++, C++, Python Medium
82 删除排序链表中的重复元素 II C++ Medium
83 删除排序链表中的重复元素 C++ Easy
84 柱状图中最大的矩形⭐ C++ Hard
85 最大矩形 C++ Hard
86 分隔链表 C++ Medium
87 扰乱字符串 C++, Python Hard
88 合并两个有序数组 C++ Easy
89 格雷编码⭐ C++, Rust Medium
90 子集 II C++, C++ Medium
91 解码方法 C++ Medium
92 反转链表 II C++, C++ Medium
93 复原 IP 地址 C++, Python Medium
94 二叉树的中序遍历⭐ C++ Easy
95 不同的二叉搜索树 II C++ Medium
96 不同的二叉搜索树⭐ C++ Medium
97 交错字符串⭐ C++, Python Medium
98 验证二叉搜索树 C++ Medium
99 恢复二叉搜索树 C++, C++ Medium
100 相同的树 C++ Easy
101 对称二叉树 C++ Easy
102 二叉树的层序遍历 C++ Medium
103 二叉树的锯齿形层序遍历 C++ Medium
104 二叉树的最大深度 C++ Easy
105 从前序与中序遍历序列构造二叉树 C++ Medium
106 从中序与后序遍历序列构造二叉树 C++ Medium
107 二叉树的层序遍历 II C++ Medium
109 有序链表转换二叉搜索树 C++ Medium
110 平衡二叉树 C++ Easy
111 二叉树的最小深度 C++ Easy
112 路径总和 C++ Easy
113 路径总和 II C++ Medium
114 二叉树展开为链表 C++ Medium
115 不同的子序列 C++ Hard
116 填充每个节点的下一个右侧节点指针 C++ Medium
117 填充每个节点的下一个右侧节点指针 II C++ Medium
118 杨辉三角 C++ Easy
119 杨辉三角 II C++ Easy
120 三角形最小路径和 C++ Medium
121 买卖股票的最佳时机 C++, C++ Easy
122 买卖股票的最佳时机 II C++ Medium
123 买卖股票的最佳时机 III⭐ C++ Hard
124 二叉树中的最大路径和 C++ Hard
125 验证回文串 C++ Easy
126 单词接龙 II C++ Hard
127 单词接龙 C++, C++, C++, Python Hard
128 最长连续序列 C++, Python Medium
129 求根节点到叶节点数字之和 C++ Medium
130 被围绕的区域 C++ Medium
131 分割回文串 C++ Medium
132 分割回文串 II C++ Hard
133 克隆图 C++ Medium
134 加油站 C++ Medium
135 分发糖果 C++, C++ Hard
137 只出现一次的数字 II⭐ C++ Medium
138 复制带随机指针的链表⭐ C++ Medium
139 单词拆分 C++, Python, Rust Medium
140 单词拆分 II C++, Python Hard
141 环形链表 C++ Easy
142 环形链表 II⭐ C++, C++, C++ Medium
143 重排链表 C++ Medium
144 二叉树的前序遍历 C++ Easy
145 二叉树的后序遍历 C++ Easy
146 LRU 缓存 C++, Python Medium
147 对链表进行插入排序 C++ Medium
148 排序链表⭐ C++ Medium
149 直线上最多的点数 C++, C++, Python, Python, Rust Hard
150 逆波兰表达式求值 C++, C++ Medium
151 颠倒字符串中的单词 C++, Python Medium
152 乘积最大子数组 C++ Medium
153 寻找旋转排序数组中的最小值 C++ Medium
154 寻找旋转排序数组中的最小值 II C++ Hard
155 最小栈 C++ Easy
160 相交链表⭐ C++ Easy
162 寻找峰值 C++, C++, Rust Medium
164 最大间距 C++ Hard
165 比较版本号 C++ Medium
166 分数到小数 C++ Medium
167 两数之和 II - 输入有序数组 C++ Medium
168 Excel表列名称⭐ C++, C++, Rust Easy
169 多数元素 C++ Easy
172 阶乘后的零 C++ Medium
173 二叉搜索树迭代器⭐ C++ Medium
174 地下城游戏 C++ Hard
179 最大数 C++, C++ Medium
188 买卖股票的最佳时机 IV⭐ C++, C++, Go, Java, Rust Hard
189 轮转数组⭐ C++ Medium
190 颠倒二进制位⭐ C++ Easy
191 位1的个数 C++ Easy
195 第十行 Shell Easy
198 打家劫舍 C++ Medium
199 二叉树的右视图 C++ Medium
200 岛屿数量 C++ Medium
201 数字范围按位与⭐ C++ Medium
202 快乐数 C++ Easy
203 移除链表元素 C++ Easy
204 计数质数 C++ Medium
205 同构字符串 C++ Easy
206 反转链表 C++, Python, Rust Easy
207 课程表 C++ Medium
208 实现 Trie (前缀树) C++, C++, Python, Python Medium
209 长度最小的子数组 C++ Medium
210 课程表 II C++ Medium
211 添加与搜索单词 - 数据结构设计 C++ Medium
212 单词搜索 II C++, C++, Python Hard
213 打家劫舍 II C++, C++ Medium
214 最短回文串⭐ C++ Hard
215 数组中的第K个最大元素 C++, C++, C++ Medium
216 组合总和 III C++ Medium
218 天际线问题⭐ C++, C++, Rust Hard
219 存在重复元素 II C++ Easy
220 存在重复元素 III C++, C++, Java Medium
221 最大正方形 C++ Medium
222 完全二叉树的节点个数 C++ Medium
223 矩形面积 C++ Medium
224 基本计算器 C++, Rust Hard
225 用队列实现栈 C++ Easy
226 翻转二叉树 C++ Easy
227 基本计算器 II C++, C++ Medium
229 多数元素 II⭐ C++, C++, Python Medium
231 2 的幂 C++ Easy
232 用栈实现队列 C++ Easy
233 数字 1 的个数 C++, C++, Rust Hard
234 回文链表 C++ Easy
235 二叉搜索树的最近公共祖先 C++ Easy
236 二叉树的最近公共祖先 C++ Medium
237 删除链表中的节点 C++, Java, Java Easy
238 除自身以外数组的乘积 C++ Medium
239 滑动窗口最大值⭐ C++, Python Hard
241 为运算表达式设计优先级 C++ Medium
248 中心对称数 III C++ Hard
257 二叉树的所有路径 C++ Easy
258 各位相加⭐ C++ Easy
260 只出现一次的数字 III C++ Medium
263 丑数 C++ Easy
264 丑数 II C++, C++ Medium
268 丢失的数字 C++, C++ Easy
273 整数转换英文表示 C++ Hard
274 H 指数 C++, C++, Rust Medium
275 H 指数 II C++, Go, Rust Medium
278 第一个错误的版本 C++ Easy
279 完全平方数⭐ C++, Rust, Rust Medium
282 给表达式添加运算符 C++ Hard
283 移动零 C++ Easy
287 寻找重复数⭐ C++, Python Medium
295 数据流的中位数⭐ C++, C++, C++, Rust Hard
297 二叉树的序列化与反序列化⭐ C++, C++, C++ Hard
299 猜数字游戏 Python Medium
300 最长递增子序列 C++, C++ Medium
301 删除无效的括号 C++ Hard
303 区域和检索 - 数组不可变 C++ Easy
304 二维区域和检索 - 矩阵不可变 Rust Medium
306 累加数 C++ Medium
307 区域和检索 - 数组可修改 C++, C++, C++ Medium
309 最佳买卖股票时机含冷冻期 C++ Medium
310 最小高度树 C++ Medium
312 戳气球⭐ C++, C++ Hard
313 超级丑数⭐ C++, C++, Rust, Rust Medium
315 计算右侧小于当前元素的个数 C++ Hard
316 去除重复字母 Python Medium
318 最大单词长度乘积 Python Medium
319 灯泡开关⭐ C++ Medium
321 拼接最大数 C++ Hard
322 零钱兑换 C++ Medium
324 摆动排序 II⭐ C++, C++, C++, Python Medium
327 区间和的个数 C++ Hard
331 验证二叉树的前序序列化⭐ C++, C++ Medium
332 重新安排行程 C++, Python Hard
334 递增的三元子序列 C++, C++ Medium
337 打家劫舍 III C++ Medium
338 比特位计数 C++, Go, Rust Easy
341 扁平化嵌套列表迭代器⭐ C++ Medium
342 4的幂⭐ C++, Python Easy
343 整数拆分 Python Medium
344 反转字符串 Python Easy
345 反转字符串中的元音字母 C++, C++ Easy
347 前 K 个高频元素 Python Medium
354 俄罗斯套娃信封问题 C++ Hard
357 统计各位数字都不同的数字个数 C++, Python Medium
363 矩形区域不超过 K 的最大数值和⭐ C++ Hard
367 有效的完全平方数 C++ Easy
368 最大整除子集 C++ Medium
371 两整数之和 C++ Medium
372 超级次方⭐ C++, C++ Medium
373 查找和最小的 K 对数字 C++, Rust Medium
374 猜数字大小 C++ Easy
375 猜数字大小 II C++ Medium
376 摆动序列⭐ Python Medium
377 组合总和 Ⅳ⭐ C++, Python Medium
378 有序矩阵中第 K 小的元素⭐ C++, C++ Medium
380 O(1) 时间插入、删除和获取随机元素⭐ C++ Medium
381 O(1) 时间插入、删除和获取随机元素 - 允许重复 C++ Hard
382 链表随机节点 C++ Medium
384 打乱数组⭐ C++ Medium
389 找不同 C++, Python Easy
390 消除游戏 C++ Medium
391 完美矩形 C++, C++ Hard
392 判断子序列⭐ C++ Easy
394 字符串解码 C++ Medium
395 至少有 K 个重复字符的最长子串 Python, Python Medium
398 随机数索引⭐ C++, C++ Medium
399 除法求值 C++, Python Medium
401 二进制手表 Rust Easy
402 移掉 K 位数字 Python Medium
403 青蛙过河 C++ Hard
404 左叶子之和 C++ Easy
405 数字转换为十六进制数 C++ Easy
406 根据身高重建队列⭐ C++, C++ Medium
407 接雨水 II⭐ C++ Hard
409 最长回文串 Python Easy
413 等差数列划分 C++, Rust Medium
414 第三大的数 C++ Easy
416 分割等和子集⭐ C++ Medium
418 屏幕可显示句子的数量 C++ Medium
421 数组中两个数的最大异或值⭐ C++, C++, Python, Rust Medium
424 替换后的最长重复字符 C++, C++ Medium
429 N 叉树的层序遍历 C++ Medium
430 扁平化多级双向链表⭐ C++ Medium
432 全 O(1) 的数据结构⭐ C++ Hard
436 寻找右区间 C++, Python Medium
437 路径总和 III C++, C++ Medium
438 找到字符串中所有字母异位词 C++ Medium
441 排列硬币 C++ Easy
442 数组中重复的数据⭐ C++, Python Medium
443 压缩字符串 C++ Medium
445 两数相加 II C++, C++ Medium
446 等差数列划分 II - 子序列 C++, Rust Hard
447 回旋镖的数量 Rust Medium
448 找到所有数组中消失的数字 C++ Easy
449 序列化和反序列化二叉搜索树⭐ C++ Medium
450 删除二叉搜索树中的节点 C++ Medium
451 根据字符出现频率排序 Rust Medium
454 四数相加 II Python Medium
456 132 模式⭐ C++, C++, Python Medium
459 重复的子字符串 C++ Easy
460 LFU 缓存 C++, C++, C++ Hard
461 汉明距离 C++, Python Easy
462 最少移动次数使数组元素相等 II C++, Python Medium
464 我能赢吗⭐ Python Medium
467 环绕字符串中唯一的子字符串⭐ C++ Medium
468 验证IP地址 C++ Medium
472 连接词⭐ C++, Rust Hard
473 火柴拼正方形 C++ Medium
474 一和零 C++, Rust Medium
477 汉明距离总和 C++ Medium
479 最大回文数乘积 C++ Hard
480 滑动窗口中位数⭐ C++, C++, C++ Hard
482 密钥格式化 Python Easy
483 最小好进制 C++, C++ Hard
485 最大连续 1 的个数 C++ Easy
486 预测赢家 C++, Python Medium
488 祖玛游戏 Python Hard
491 递增子序列 C++, C++, Python, Rust Medium
493 翻转对 C++ Hard
494 目标和⭐ C++, C++, Python, Rust Medium
495 提莫攻击 C++ Easy
496 下一个更大元素 I C++ Easy
497 非重叠矩形中的随机点 C++ Medium
498 对角线遍历 C++, Rust Medium
502 IPO C++ Hard
503 下一个更大元素 II C++ Medium
508 出现次数最多的子树元素和 C++ Medium
513 找树左下角的值 C++ Medium
515 在每个树行中找最大值 C++, Rust Medium
516 最长回文子序列 C++, Python, Rust Medium
517 超级洗衣机⭐ C++ Hard
518 零钱兑换 II⭐ C++ Medium
519 随机翻转矩阵 C++ Medium
520 检测大写字母 C++ Easy
521 最长特殊序列 Ⅰ Rust, Rust, Rust Easy
522 最长特殊序列 II Python Medium
523 连续的子数组和 C++, Python, Rust Medium
524 通过删除字母匹配到字典里最长单词 C++ Medium
525 连续数组⭐ C++, Rust Medium
526 优美的排列⭐ C++, C++, Rust Medium
528 按权重随机选择⭐ C++ Medium
530 二叉搜索树的最小绝对差 C++ Easy
532 数组中的 k-diff 数对 C++ Medium
537 复数乘法⭐ C++ Medium
541 反转字符串 II Python Easy
543 二叉树的直径 C++, Rust Easy
546 移除盒子⭐ C++, C++, C++ Hard
547 省份数量 C++, C++, C++, Python Medium
551 学生出勤记录 I Rust Easy
552 学生出勤记录 II Rust Hard
554 砖墙 Python, Rust Medium
556 下一个更大元素 III C++ Medium
557 反转字符串中的单词 III Python Easy
560 和为 K 的子数组 C++ Medium
561 数组拆分 I C++ Easy
566 重塑矩阵 C++ Easy
567 字符串的排列 C++ Medium
576 出界的路径数 C++, Rust Medium
581 最短无序连续子数组⭐ C++, C++, Rust Medium
587 安装栅栏⭐ C++ Hard
594 最长和谐子序列 C++ Easy
600 不含连续1的非负整数 C++ Hard
621 任务调度器 C++ Medium
628 三个数的最大乘积 C++ Easy
629 K个逆序对数组 C++ Hard
632 最小区间⭐ C++ Hard
633 平方数之和 C++ Medium
638 大礼包⭐ C++, Python Medium
639 解码方法 II C++ Hard
640 求解方程 C++, Python, Rust Medium
645 错误的集合 Rust Easy
646 最长数对链⭐ C++ Medium
647 回文子串 C++ Medium
648 单词替换 Python Medium
649 Dota2 参议院⭐ Rust Medium
650 只有两个键的键盘⭐ C++, C++ Medium
654 最大二叉树 C++ Medium
657 机器人能否返回原点 Python Easy
665 非递减数列 C++ Medium
668 乘法表中第k小的数 C++, Rust Hard
671 二叉树中第二小的节点 C++ Easy
673 最长递增子序列的个数⭐ C++, C++, C++, Python, Rust Medium
677 键值映射 C++ Medium
678 有效的括号字符串⭐ C++ Medium
679 24 点游戏 C++ Hard
682 棒球比赛 Rust Easy
684 冗余连接 C++ Medium
685 冗余连接 II C++ Hard
686 重复叠加字符串匹配 C++ Medium
687 最长同值路径 C++ Medium
688 骑士在棋盘上的概率 C++ Medium
690 员工的重要性 C++ Medium
691 贴纸拼词⭐ Hard
692 前K个高频单词 C++, Rust Medium
697 数组的度 C++ Easy
698 划分为k个相等的子集⭐ C++, C++, C++, Python Medium
699 掉落的方块⭐ C++ Hard
701 二叉搜索树中的插入操作 C++ Medium
703 数据流中的第 K 大元素 C++ Easy
704 二分查找 C++ Easy
705 设计哈希集合 C++, C++, C++ Easy
706 设计哈希映射 C++, Rust Easy
710 黑名单中的随机数⭐ C++ Hard
714 买卖股票的最佳时机含手续费 C++ Medium
715 Range 模块 C++, C++ Hard
718 最长重复子数组 C++ Medium
719 找出第 K 小的数对距离 C++ Hard
721 账户合并 C++, Python Medium
724 寻找数组的中心下标 Python Easy
725 分隔链表 C++ Medium
726 原子的数量 C++ Hard
729 我的日程安排表 I C++, C++ Medium
730 统计不同回文子序列 C++, Go Hard
731 我的日程安排表 II C++ Medium
732 我的日程安排表 III⭐ C++ Hard
739 每日温度 C++ Medium
740 删除并获得点数 Python, Rust Medium
741 摘樱桃 Python Hard
746 使用最小花费爬楼梯 C++, Python Easy
752 打开转盘锁 C++ Medium
753 破解保险箱 Python Hard
763 划分字母区间 C++ Medium
765 情侣牵手 C++ Hard
766 托普利茨矩阵 Python Easy
773 滑动谜题⭐ C++, C++ Hard
777 在LR字符串中交换相邻字符 Python Medium
778 水位上升的泳池中游泳 Python Hard
781 森林中的兔子 C++ Medium
783 二叉搜索树节点最小距离 C++, C++ Easy
784 字母大小写全排列 C++ Medium
786 第 K 个最小的素数分数 C++ Medium
787 K 站中转内最便宜的航班⭐ C++, C++, Rust Medium
789 逃脱阻碍者 Rust Medium
793 阶乘函数后 K 个零 Python Hard
797 所有可能的路径 C++ Medium
805 数组的均值分割 C++, C++ Hard
807 保持城市天际线 Rust Medium
810 黑板异或游戏 Rust Hard
812 最大三角形面积⭐ Python Easy
813 最大平均值和的分组 C++ Medium
815 公交路线 C++, Rust, Rust Hard
829 连续整数求和 C++ Hard
832 翻转图像 C++ Easy
837 新 21 点 C++ Medium
839 相似字符串组 Python Hard
841 钥匙和房间 Python Medium
843 猜猜这个单词 Python Hard
850 矩形面积 II C++, C++, C++, Python, Rust Hard
852 山脉数组的峰顶索引 C++ Easy
855 考场就座 Rust Medium
862 和至少为 K 的最短子数组⭐ C++, Rust Hard
863 二叉树中所有距离为 K 的结点 C++ Medium
865 具有所有最深节点的最小子树 C++ Medium
866 回文素数 C++, C++, C++ Medium
867 转置矩阵 C++ Easy
872 叶子相似的树 C++ Easy
873 最长的斐波那契子序列的长度 C++, Rust Medium
875 爱吃香蕉的珂珂 C++ Medium
876 链表的中间结点 C++ Easy
877 石子游戏⭐ Python Medium
879 盈利计划⭐ C++ Hard
881 救生艇 Rust Medium
886 可能的二分法⭐ Python Medium
887 鸡蛋掉落⭐ C++, Go Hard
888 公平的糖果交换 C++ Easy
889 根据前序和后序遍历构造二叉树 C++ Medium
894 所有可能的满二叉树⭐ C++ Medium
895 最大频率栈 Python Hard
896 单调数列 C++ Easy
897 递增顺序搜索树 C++ Easy
899 有序队列⭐ Python Hard
901 股票价格跨度 C++, Rust, Rust Medium
907 子数组的最小值之和 Python Medium
908 最小差值 I Rust Easy
909 蛇梯棋 Rust Medium
910 最小差值 II⭐ C++, Rust Medium
911 在线选举 C++ Medium
912 排序数组 C++, Rust, Rust Medium
913 猫和老鼠⭐ C++ Hard
918 环形子数组的最大和⭐ C++, Rust Medium
919 完全二叉树插入器 C++ Medium
926 将字符串翻转到单调递增 C++ Medium
930 和相同的二元子数组 Rust Medium
938 二叉搜索树的范围和 C++, Rust Easy
940 不同的子序列 II Python Hard
942 增减字符串匹配⭐ C++ Easy
944 删列造序 C++ Easy
946 验证栈序列⭐ C++ Medium
947 移除最多的同行或同列石头 C++, C++ Medium
953 验证外星语词典 C++ Easy
958 二叉树的完全性检验 C++, C++ Medium
968 监控二叉树 C++, C++ Hard
971 翻转二叉树以匹配先序遍历 C++ Medium
973 最接近原点的 K 个点 C++ Medium
975 奇偶跳 C++ Hard
978 最长湍流子数组 C++ Medium
980 不同路径 III⭐ Python Hard
981 基于时间的键值存储 C++, C++, Rust Medium
982 按位与为零的三元组 Python Hard
986 区间列表的交集 C++, Python Medium
987 二叉树的垂序遍历 C++ Hard
989 数组形式的整数加法 Rust Easy
992 K 个不同整数的子数组 C++, C++, Python Hard
993 二叉树的堂兄弟节点 C++ Easy
994 腐烂的橘子 Python Medium
995 K 连续位的最小翻转次数 C++, Python Hard
999 可以被一步捕获的棋子数 Rust Easy
1002 查找共用字符 C++ Easy
1004 最大连续1的个数 III⭐ C++, C++, Python Medium
1006 笨阶乘 C++ Medium
1009 十进制整数的反码 C++ Easy
1011 在 D 天内送达包裹的能力⭐ C++ Medium
1021 删除最外层的括号⭐ C++, Python Easy
1025 除数博弈 C++ Easy
1027 最长等差数列 C++, C++ Medium
1028 从先序遍历还原二叉树 C++ Hard
1032 字符流⭐ C++, C++ Hard
1033 移动石子直到连续 C++ Medium
1034 边界着色 C++ Medium
1035 不相交的线 Rust Medium
1038 从二叉搜索树到更大和树⭐ C++, C++ Medium
1040 移动石子直到连续 II⭐ Python Medium
1043 分隔数组以得到最大和 C++ Medium
1044 最长重复子串 C++ Hard
1046 最后一块石头的重量 C++ Easy
1047 删除字符串中的所有相邻重复项 C++, C++, C++, Python, Rust Easy
1048 最长字符串链 C++ Medium
1049 最后一块石头的重量 II⭐ C++ Medium
1052 爱生气的书店老板 C++ Medium
1053 交换一次的先前排列 C++, C++, C++ Medium
1074 元素和为目标值的子矩阵数量 C++, Python, Rust Hard
1089 复写零 C++ Easy
1092 最短公共超序列⭐ C++ Hard
1095 山脉数组中查找目标值 C++ Hard
1104 二叉树寻路 C++ Medium
1109 航班预订统计 Rust Medium
1114 按序打印⭐ C++, C++, C++, Python, Python, Python Easy
1115 交替打印 FooBar C++, C++ Medium
1116 打印零与奇偶数 C++ Medium
1117 H2O 生成 C++ Medium
1122 数组的相对排序 C++, Rust Easy
1123 最深叶节点的最近公共祖先⭐ C++, C++ Medium
1128 等价多米诺骨牌对的数量 C++ Easy
1137 第 N 个泰波那契数 Rust Easy
1140 石子游戏 II Python Medium
1143 最长公共子序列 C++, C++ Medium
1155 掷骰子的N种方法 C++, Python Medium
1178 猜字谜⭐ C++, C++, Python Hard
1190 反转每对括号间的子串 C++ Medium
1195 交替打印字符串 C++ Medium
1201 丑数 III Rust Medium
1208 尽可能使字符串相等 C++, Python Medium
1217 玩筹码 Python, Rust Easy
1218 最长定差子序列 C++ Medium
1221 分割平衡字符串 C++ Easy
1226 哲学家进餐⭐ C++, C++, C++ Medium
1227 飞机座位分配概率 Python Medium
1237 找出给定方程的正整数解 C++ Medium
1238 循环码排列 C++ Medium
1239 串联字符串的最大长度 C++, Rust Medium
1262 可被三整除的最大和 C++ Medium
1269 停在原地的方案数 C++, Rust Hard
1272 删除区间 Python Medium
1277 统计全为 1 的正方形子矩阵 C++ Medium
1288 删除被覆盖区间⭐ C++ Medium
1289 下降路径最小和 II⭐ C++, Python Hard
1302 层数最深叶子节点的和 C++ Medium
1306 跳跃游戏 III C++ Medium
1310 子数组异或查询 Rust Medium
1319 连通网络的操作次数 C++, Python Medium
1325 删除给定值的叶子节点 C++ Medium
1337 矩阵中战斗力最弱的 K 行 Rust Easy
1340 跳跃游戏 V⭐ C++ Hard
1345 跳跃游戏 IV C++, Rust Hard
1352 最后 K 个数的乘积 C++ Medium
1353 最多可以参加的会议数目 C++ Medium
1363 形成三的最大倍数 C++ Hard
1379 找出克隆二叉树中的相同节点 C++ Medium
1390 四因数 Rust Medium
1402 做菜顺序 Rust Hard
1405 最长快乐字符串 C++ Medium
1406 石子游戏 III Python Hard
1409 查询带键的排列 C++, C++ Medium
1414 和为 K 的最少斐波那契数字数目 Python Medium
1418 点菜展示表 Rust Medium
1423 可获得的最大点数 Python Medium
1436 旅行终点站 Python Easy
1438 绝对差不超过限制的最长连续子数组 C++ Medium
1439 有序矩阵中的第 k 个最小数组和⭐ C++, C++, C++ Hard
1442 形成两个异或相等数组的三元组数目⭐ C++ Medium
1448 统计二叉树中好节点的数目 C++ Medium
1449 数位成本和为目标值的最大数字 C++ Hard
1456 定长子串中元音的最大数目 C++ Medium
1473 粉刷房子 III Python, Rust Hard
1482 制作 m 束花所需的最少天数 C++, Rust Medium
1483 树节点的第 K 个祖先 C++ Hard
1486 数组异或操作 C++ Easy
1489 找到最小生成树里的关键边和伪关键边 C++, C++ Hard
1498 满足条件的子序列数目⭐ C++ Medium
1503 所有蚂蚁掉下来前的最后一刻 Python Medium
1510 石子游戏 IV C++ Hard
1563 石子游戏 V C++ Hard
1567 乘积为正数的最长子数组长度 Rust Medium
1579 保证图可完全遍历 C++ Hard
1583 统计不开心的朋友 Rust Medium
1588 所有奇数长度子数组的和⭐ Rust Easy
1590 使数组和能被 P 整除 Rust Medium
1600 王位继承顺序 C++ Medium
1603 设计停车系统 C++ Easy
1611 使整数变为 0 的最少操作次数 C++ Hard
1622 奇妙序列⭐ Python, Python Hard
1630 等差子数组 C++ Medium
1631 最小体力消耗路径 C++, Python Medium
1646 获取生成数组中的最大值 Rust Easy
1654 到家的最少跳跃次数⭐ C++, Python Medium
1658 将 x 减到 0 的最小操作数 Python Medium
1669 合并两个链表 C++ Medium
1686 石子游戏 VI⭐ Python Medium
1690 石子游戏 VII C++ Medium
1696 跳跃游戏 VI C++, C++ Medium
1703 得到连续 K 个 1 的最少相邻交换次数 C++ Hard
1707 与数组中元素的最大异或值⭐ C++, C++, Rust Hard
1711 大餐计数 Rust Medium
1713 得到子序列的最少操作次数 C++, Rust Hard
1720 解码异或后的数组 Rust Easy
1723 完成所有工作的最短时间⭐ C++, C++, Rust Hard
1734 解码异或后的排列 C++, Rust Medium
1736 替换隐藏数字得到的最晚时间 Rust Easy
1738 找出第 K 大的异或坐标值 C++ Medium
1743 从相邻元素对还原数组 Rust Medium
1744 你能在你最喜欢的那天吃到你最喜欢的糖果吗? C++, Rust Medium
1745 回文串分割 IV C++ Hard
1749 任意子数组和的绝对值的最大值 C++ Medium
1753 移除石子的最大得分 C++ Medium
1754 构造字典序最大的合并字符串 C++ Medium
1755 最接近目标值的子序列和 C++, C++, Python, Python Hard
1763 最长的美好子字符串 C++ Easy
1765 地图中的最高点 C++ Medium
1787 使所有区间的异或结果为零⭐ C++ Hard
1791 找出星型图的中心节点 C++, Rust Easy
1813 句子相似性 III Python Medium
1814 统计一个数组中好对子的数目 Rust Medium
1818 绝对差值和 Rust Medium
1819 序列中不同最大公约数的数目⭐ C++ Hard
1823 找出游戏的获胜者 C++ Medium
1824 最少侧跳次数 C++ Medium
1825 求出 MK 平均值 C++ Hard
1828 统计一个圆中点的数目 Rust Medium
1833 雪糕的最大数量 C++ Medium
1838 最高频元素的频数 Rust Medium
1846 减小和重新排列数组后的最大元素 Rust Medium
1856 子数组最小乘积的最大值⭐ C++ Medium
1865 找出和为指定值的下标对 Rust Medium
1871 跳跃游戏 VII C++ Medium
1877 数组中最大数对和的最小值⭐ Rust Medium
1884 鸡蛋掉落-两枚鸡蛋 Rust Medium
1893 检查是否区域内所有整数都被覆盖 Rust Easy
1894 找到需要补充粉笔的学生编号 Rust Medium
1906 查询差绝对值的最小值 Rust, Rust Medium
1915 最美子字符串的数目 Rust Medium

LCCI

# Title Solution Difficulty
面试题 01.04 回文排列 C++ Easy
面试题 01.05 一次编辑 C++ Medium
面试题 01.07 旋转矩阵 C++, Rust Medium
面试题 02.04 分割链表 C++ Medium
面试题 02.05 链表求和 C++ Medium
面试题 02.08 环路检测 C++ Medium
面试题 03.03 堆盘子 C++ Medium
面试题 03.05 栈排序 C++, Rust Medium
面试题 04.01 节点间通路 Python Medium
面试题 04.03 特定深度节点链表 C++ Medium
面试题 04.05 合法二叉搜索树 C++ Medium
面试题 04.06 后继者 C++, C++ Medium
面试题 04.10 检查子树 C++, C++, C++ Medium
面试题 04.12 求和路径⭐ C++, C++ Medium
面试题 05.02 二进制数转字符串 C++ Medium
面试题 05.04 下一个数 C++ Medium
面试题 05.08 绘制直线 C++ Medium
面试题 08.02 迷路的机器人 Python, Rust Medium
面试题 08.04 幂集 Python, Rust Medium
面试题 08.05 递归乘法 C++ Medium
面试题 08.07 无重复字符串的排列组合 C++, C++ Medium
面试题 08.08 有重复字符串的排列组合 C++, C++, C++ Medium
面试题 08.09 括号⭐ Python, Rust Medium
面试题 08.11 硬币⭐ Rust Medium
面试题 08.12 八皇后 Python Hard
面试题 08.14 布尔运算⭐ C++ Medium
面试题 10.02 变位词组 Rust Medium
面试题 10.03 搜索旋转数组 C++ Medium
面试题 10.09 排序矩阵查找 C++ Medium
面试题 10.10 数字流的秩⭐ C++, C++ Medium
面试题 10.11 峰与谷 C++, Rust Medium
面试题 16.02 单词频率 C++ Medium
面试题 16.06 最小差 C++ Medium
面试题 16.13 平分正方形 C++ Medium
面试题 16.16 部分排序 C++ Medium
面试题 16.20 T9键盘 Rust Medium
面试题 16.21 交换和 C++ Medium
面试题 16.24 数对和 C++ Medium
面试题 16.25 LRU 缓存 C++ Medium
面试题 16.26 计算器 C++ Medium
面试题 17.05 字母与数字 C++, Rust Medium
面试题 17.07 婴儿名字 Python Medium
面试题 17.08 马戏团人塔⭐ C++, Rust Medium
面试题 17.09 第 k 个数 C++ Medium
面试题 17.10 主要元素 Rust Easy
面试题 17.11 单词距离⭐ Rust Medium
面试题 17.13 恢复空格 C++, Rust Medium
面试题 17.15 最长单词⭐ Rust Medium
面试题 17.17 多次搜索 C++, Rust Medium
面试题 17.18 最短超串 Python Medium
面试题 17.19 消失的两个数字⭐ C++, C++ Hard
面试题 17.22 单词转换 Python Medium
面试题 17.23 最大黑方阵⭐ C++, Rust Medium
面试题 17.24 最大子矩阵 C++ Hard

LCP

# Title Solution Difficulty
LCP 03 机器人大冒险 C++, C++ Medium
LCP 07 传递信息 C++ Easy
LCP 08 剧情触发时间 C++, C++, Rust Medium
LCP 09 最小跳跃次数 C++, Rust Hard
LCP 14 切分数组 C++ Hard
LCP 18 早餐组合 C++, C++ Easy
LCP 23 魔术排列 C++ Medium
LCP 34 二叉树染色⭐ C++ Medium
LCP 35 电动车游城市⭐ C++ Hard
LCP 36 最多牌组数⭐ C++ Hard

LCOF

# Title Solution Difficulty
剑指 Offer 03 数组中重复的数字 C++ Easy
剑指 Offer 11 旋转数组的最小数字 C++ Easy
剑指 Offer 12 矩阵中的路径 C++ Medium
剑指 Offer 15 二进制中1的个数 C++ Easy
剑指 Offer 22 链表中倒数第k个节点 C++ Easy
剑指 Offer 26 树的子结构 C++ Medium
剑指 Offer 32 - I 从上到下打印二叉树 C++ Medium
剑指 Offer 36 二叉搜索树与双向链表⭐ C++, C++ Medium
剑指 Offer 37 序列化二叉树 C++, C++ Hard
剑指 Offer 38 字符串的排列 C++, C++, Python Medium
剑指 Offer 44 数字序列中某一位的数字 C++ Medium
剑指 Offer 45 把数组排成最小的数 C++ Medium
剑指 Offer 46 把数字翻译成字符串 C++ Medium
剑指 Offer 47 礼物的最大价值 C++ Medium
剑指 Offer 48 最长不含重复字符的子字符串 C++ Medium
剑指 Offer 51 数组中的逆序对 C++ Hard
剑指 Offer 53 - I 在排序数组中查找数字 I Rust Easy
剑指 Offer 59 - I 滑动窗口的最大值 C++ Hard
剑指 Offer 59 - II 队列的最大值 C++ Medium
剑指 Offer 60 n个骰子的点数 C++ Medium
剑指 Offer 68 - I 二叉搜索树的最近公共祖先 C++, C++ Easy

SJTU

# Title Solution Tags
1037 sjtu1037 C++
贪心算法, 快排序+堆排序
1038 sjtu1038 C++
约瑟夫环问题
1051 sjtu1051 C++
[模拟], [单链表]
1053 sjtu1053 C++
(稀疏数组)
动作: 交换行列
问询: 值
技巧: 保存行行、列列映射, O(N)空间
链表+链表保存稀疏数据
1112 sjtu1112 C++
堆, 堆排序, extract_max(), push(x), max_heapify()操作
1215 sjtu1215 C++
实现一个优先级队列
操作: insert, delete min, get min
[最小堆]
1216 sjtu1216 C++
实现一个优先级队列
操作: insert, decrease key, find x(大于x的最小的数字下标)
[最小堆]
1218 sjtu1218 C++
集合
操作: union / difference / intersection
[Binary Search Tree(BST)]
1228 sjtu1228 C++
Matrix Sum: 求奇子阵的总数
1233 sjtu1233 C++
DFS求从某一顶点出发到长度为2的简单路径的数目
1234 sjtu1234 C++
Kruskal 最小生成树算法
1235 sjtu1235 C++
Dijkstra 单源最短路径算法
1236 sjtu1236 C++
Bellman-Ford 单源最短路径算法
1237 sjtu1237 C++
Topological Sort 拓扑排序
1245 sjtu1245 C++
stack, Token
中缀表达式转前缀表达式,并计算前缀表达式的值
1377 sjtu1377 C++
长度为N的数列 A[1..N] , 这N个数字恰好是1...N的一个排列, 这个序列的中值为B
求出这个序列有多少个(连续)子序列 A[i..j] 满足: i <= j 且 j-i+1 为奇数, 且中值为 B
O(N) 复杂度, 抽象大于中值的为+1, 小于中值的为-1,然后稍作统计即可
1541 sjtu1541 C++
区间最大问题
Sliding Window with velocity = 1, print the maximal in the window range
[线段树]
1558 sjtu1558 C++
求移除哪几个数后,使得最长连续相同数的序列长度最长
动态规划
1564 sjtu1564 C++
[DFS]
1593 sjtu1593 C++
struct Mouse
{
    int index;
    int points;
    int strength;
};
mergeSort() + bubbleSort()
mergeSort() 可以换成 qsort(), 注意 Cmp() 类的书写
1602 sjtu1602 C++
归并排序的归并操作
merge A[0,..,mid], A[mid+1,...,rht]
1605 sjtu1605 C++, C++, C++
括号栈:提供 全部 O(1) 的 push, pop, top, query(是否为合法括号栈)
1607 sjtu1607 C++
队列, 队列的队列, 延迟哈希
1634 sjtu1634 C++
统计堆排序, 归并排序, 快排的比较次数
1990 sjtu1990 C++
问询:最小值位置
动作:单点自增自减
1994 sjtu1994 C++
dfs, 邻接数组, 求连通分量的个数
1999 sjtu1999 C++
旅行商问题-TSP
城市数目C<=5,暴力穷举,至多120种情况
3008 sjtu3008 C++
迷宫
bfs, 注意细节
3020 sjtu3020 C++
哈夫曼树, K叉, 计算最终的带权路径长度(WPL)
K-way HauffmanTree, heap
4011 sjtu4011 C++
A[h+1, K] = A[h, 1]
A[h+1, k] = sum(A[h, K..K-k+1])
[大数加法]
4012 sjtu4012 C++
给定一组数(果子), 每次合并两个数(两堆果子), 消耗的体力为两个数之和
求最小消耗的体力
[最小堆]
4057 sjtu4057 C++
最长回文字符串
4082 sjtu4082 C++
使用并查集
需要判断不同的连通分量
并计算每隔连通图内部的边数和节点数
4096 sjtu4096 C++
搬箱子, 模拟, 数组实现双向链表, 计算双向链表的头尾
4119 sjtu4119 C++
求一棵树中到三个节点距离之和最短的节点
将其视为寻找公共祖先的问题
4171 sjtu4171 C++
给定 A[1..N], B[1..N], 求两数列的N^2种和中最小的前N项
[快排+堆]
对 A, B 快排排序, 对相加的和采用最小优先队列, pop最小者, push最小者对应的索引附近的数
4172 sjtu4172 C++
0, 1数组
操作: 将区间[l, r]全部变为x
查询: 区间[l, r]中1的数目或者问询最长的连续的1的数目
[线段树]
4173 sjtu4173 C++
二分搜索,滑动窗口 O(N log L)
4174 sjtu4174 C++
[排序][贪心]
4184 sjtu4184 C++
通过dfs遍历全树并记录每个节点所对应的子树的规模
4188 sjtu4188 C++
字符串哈希
给定字符串S1...SN, 随机问询如下三个问题
1 x : Sx 是否在 S1...Sx-1中出现, O(1)
2 x y: 询问 Sx, Sy 的最长公共前缀长度, O(log L)
3 x y: 询问 Sx, Sy 的最长公共后缀长度, O(log L)
4189 sjtu4189 C++, C++
找到所有这样的节点,满足断开该节点后,子树规模的最大值不超过N/2
4190 sjtu4190 C++, C++, C++
问询区间[1..2k+1]的第k大值(即中位数)
划分树, 快排
4370 sjtu4370 C++
最小数栈:提供O(1)时间复杂度的push,pop,top,getMin操作

Codility

# Title Solution Tags
Lesson 2 Arrays CyclicRotation C++
Rotate an array to the right by a given number
of steps.
Lesson 4 Counting Elements FrogRiverOne Python
Find the earliest time when a frog can jump
to the other side of a river.
Lesson 4 Counting Elements MaxCounters C++
Calculate the values of counters after applying
all alternating operations: increase counter
by 1; set value of all counters to current
maximum.
Lesson 5 Prefix Sums CountDiv C++
Compute number of integers divisible by k
in range [a..b].
Lesson 5 Prefix Sums GenomicRangeQuery C++
Find the minimal nucleotide from a range
of sequence DNA.
Lesson 5 Prefix Sums MinAvgTwoSlice C++
Find the minimal average of any slice containing
at least two elements.
Lesson 5 Prefix Sums PassingCars C++
Count the number of passing cars on the road.
Lesson 6 Sorting Distinct C++, C++
Compute number of distinct values in an array.
Lesson 6 Sorting NumberOfDiscIntersections C++
Compute the number of intersections in a
sequence of discs.
Lesson 6 Sorting Triangle C++, C++
Determine whether a triangle can be built
from a given set of edges.
Lesson 7 Stacks and Queues Fish C++
N voracious fish are moving along a river.
Calculate how many fish are alive.
Lesson 7 Stacks and Queues Nesting C++
Determine whether a given string of parentheses
(single type) is properly nested.
Lesson 7 Stacks and Queues StoneWall C++
Cover "Manhattan skyline" using the minimum
number of rectangles.
Lesson 8 Leader Dominator C++
Find an index of an array such that its value
occurs at more than half of indices in the
array.
Lesson 8 Leader EquiLeader C++
Find the index S such that the leaders of
the sequences A[0], A[1], ..., A[S] and A[S
+ 1], A[S + 2], ..., A[N - 1] are the same.
Lesson 9 Maximum slice problem MaxDoubleSliceSum C++
Find the maximal sum of any double slice.
Lesson 10 Prime and composite numbers CountFactors C++
Count factors of given number n.
Lesson 10 Prime and composite numbers Flags C++
Find the maximum number of flags that can
be set on mountain peaks.
Lesson 10 Prime and composite numbers MinPerimeterRectangle C++
Find the minimal perimeter of any rectangle
whose area equals N.
Lesson 10 Prime and composite numbers Peaks C++
Divide an array into the maximum number of
same-sized blocks, each of which should contain
an index P such that A[P - 1] < A[P] > A[P
+ 1].
Lesson 11 Sieve of Eratosthenes CountNonDivisible C++
Calculate the number of elements of an array
that are not divisors of each element.
Lesson 11 Sieve of Eratosthenes CountSemiprimes C++
Count the semiprime numbers in the given
range [a..b]
Lesson 12 Euclidean algorithm ChocolatesByNumbers C++
There are N chocolates in a circle. Count
the number of chocolates you will eat.
Lesson 12 Euclidean algorithm CommonPrimeDivisors C++
Check whether two numbers have the same prime
divisors.
Lesson 13 Fibonacci numbers FibFrog C++
Count the minimum number of jumps required
for a frog to get to the other side of a
river.
Lesson 13 Fibonacci numbers Ladder C++
Count the number of different ways of climbing
to the top of a ladder.
Lesson 14 Binary search algorithm MinMaxDivision C++
Divide array A into K blocks and minimize
the largest sum of any block.
Lesson 14 Binary search algorithm NailingPlanks C++, C++
Count the minimum number of nails that allow
a series of planks to be nailed.
Lesson 15 Caterpillar method AbsDistinct C++
Compute number of distinct absolute values
of sorted array elements.
Lesson 15 Caterpillar method CountDistinctSlices C++
Count the number of distinct slices (containing
only unique numbers).
Lesson 15 Caterpillar method CountTriangles C++
Count the number of triangles that can be
built from a given set of edges.
Lesson 15 Caterpillar method MinAbsSumOfTwo C++
Find the minimal absolute value of a sum
of two elements.
Lesson 16 Greedy algorithms MaxNonoverlappingSegments C++
Find a maximal set of non-overlapping segments.
Lesson 16 Greedy algorithms TieRopes C++
Tie adjacent ropes to achieve the maximum
number of ropes of length >= K.
Lesson 17 Dynamic programming MinAbsSum C++, C++, C++
Given array of integers, find the lowest
absolute sum of elements.
Lesson 17 Dynamic programming NumberSolitaire C++
In a given array, find the subset of maximal
sum in which the distance between consecutive
elements is at most 6.

About

Personal LeetCode Solutions (mostly in C++, Python or Rust).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published