algorirhy / algorithm-notes

My LeetCode Solutions

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

algorithm-notes

LeetCode

# Title Solution Difficulty Tag
1 两数之和 Java Easy
2 两数相加 Java Medium
3 无重复字符的最长子串 Java Medium 滑动窗口
4 寻找两个正序数组的中位数 Java Hard 二分查找
5 最长回文子串 Java Medium 动态规划
7 整数反转 Java Easy
8 字符串转换整数 (atoi) Java Medium
9 回文数 Java Easy
10 正则表达式匹配 Java Hard 动态规划
11 盛最多水的容器 Java Medium 双指针
12 整数转罗马数字 Java Medium
13 罗马数字转整数 Java Easy
14 最长公共前缀 Java Easy
15 三数之和 Java Medium 双指针
17 电话号码的字母组合 Java Medium
19 删除链表的倒数第N个节点 Java Medium
20 有效的括号 Java Easy
21 合并两个有序链表 Java Easy
22 括号生成 Java Medium 回溯搜索
23 合并K个排序链表 Java Hard
24 两两交换链表中的节点 Java Medium
25 K 个一组翻转链表 Java Hard
26 删除排序数组中的重复项 Java/Go Easy 双指针
27 移除元素 Java Easy
31 下一个排列 Java Medium
32 最长有效括号 Java Hard 动态规划
33 搜索旋转排序数组 Java Medium 二分查找
34 在排序数组中查找元素的第一个和最后一个位置 Java Medium 二分查找
39 组合总和 Java Medium 回溯搜索
40 组合总和 II Java Medium 回溯搜索
42 接雨水 Java Hard 双指针、单调栈
43 字符串相乘 Java Medium
45 跳跃游戏 II Java Hard 贪心
46 全排列 Java Medium 回溯搜索
47 全排列 II Java Medium 回溯搜索
48 旋转图像 Java Medium
50 Pow(x, n) Java Medium 快速幂
51 N皇后 Java Hard 回溯搜索
53 最大子序和 Java Easy 动态规划
54 螺旋矩阵 Java Medium
55 跳跃游戏 Java Medium 逆推
56 合并区间 Java Medium
62 不同路径 Java Medium 动态规划
64 最小路径和 Java Medium 动态规划
65 有效数字 Java Hard
66 加一 Java Easy
67 二进制求和 Java Easy
69 x 的平方根 Java Easy 二分查找
70 爬楼梯 Java Easy 动态规划
72 编辑距离 Java Hard 动态规划
76 最小覆盖子串 Java Hard 滑动窗口
78 子集 Java Medium 回溯搜索
79 单词搜索 Java Medium 回溯搜索
81 搜索旋转排序数组 II Java Medium 二分查找
82 删除排序链表中的重复元素 II Java Medium
83 删除排序链表中的重复元素 Java Easy
84 柱状图中最大的矩形 Java Hard 单调栈
86 分隔链表 Java Medium
88 合并两个有序数组 Java Easy
90 子集 II Java Medium 回溯搜索
91 解码方法 Java Medium 动态规划
93 复原IP地址 Java Medium
94 二叉树的中序遍历 Java Medium
96 不同的二叉搜索树 Java Medium 动态规划
98 验证二叉搜索树 Java Medium
101 对称二叉树 Java Easy
102 二叉树的层次遍历 Java Medium
103 二叉树的锯齿形层次遍历 Java Medium
104 二叉树的最大深度 Java Easy
105 从前序与中序遍历序列构造二叉树 Java Medium
110 平衡二叉树 Java Easy
111 二叉树的最小深度 Java Easy
112 路径总和 Java Easy
113 路径总和 II Java Medium
120 三角形最小路径和 Java Medium 动态规划
121 买卖股票的最佳时机 Java Easy
126 单词接龙 II Java Hard 双向 BFS
128 最长连续序列 Java Hard
130 被围绕的区域 Java Medium DFS
134 加油站 Java Medium
136 只出现一次的数字 Java Easy 位运算
137 只出现一次的数字 II Java Medium 位运算
138 复制带随机指针的链表 Java Medium
139 单词拆分 Java Medium
141 环形链表 Java Easy 快慢指针
142 环形链表 II Java Medium 快慢指针
144 二叉树的前序遍历 Java Medium
145 二叉树的后序遍历 Java Hard
146 LRU 缓存机制 Java Medium
151 翻转字符串里的单词 Java Medium
152 乘积最大子数组 Java Meidum 动态规划
153 寻找旋转排序数组中的最小值 Java Medium 二分查找
154 寻找旋转排序数组中的最小值 II Java Hard 二分查找
155 最小栈 Java Easy
160 相交链表 Java Easy
165 比较版本号 java Medium
169 多数元素 Java Easy
189 旋转数组 Java Easy
191 位1的个数 Java Easy
198 打家劫舍 Java Easy
199 二叉树的右视图 Java Medium
200 岛屿数量 Java Medium 回溯搜索
202 快乐数 Java Easy 快慢指针
206 反转链表 Java Easy
208 实现 Trie (前缀树) Java Medium
210 课程表 II Java Medium 拓扑排序
213 打家劫舍 II Java Medium
215 数组中的第 K 个最大元素 Java Medium 堆、快速排序
221 最大正方形 Java Medium 动态规划
223 矩形面积 Java Medium
225 用队列实现栈 Java Easy
226 翻转二叉树 Java Easy
232 用栈实现队列 Java Easy
233 数字 1 的个数 Java Hard
234 回文链表 Java Easy
235 二叉搜索树的最近公共祖先 Java Easy
236 二叉树的最近公共祖先 Java Medium
238 除自身以外数组的乘积 Java Medium
239 滑动窗口最大值 Java Hard 动态规划、双端队列
240 搜索二维矩阵 II Java Medium
260 只出现一次的数字 III Java Medium 位运算
263 丑数 Java Easy
264 丑数 II Java Medium 多路归并、堆、优先队列
279 完全平方数 Java Medium 动态规划
283 移动零 Java Easy
287 寻找重复数 Java Medium 二分查找
289 生命游戏 Java Medium
295 数据流的中位数 Java Hard
297 二叉树的序列化与反序列化 Java Hard
300 最长上升子序列 Java Medium
322 零钱兑换 Java Medium
337 打家劫舍 III Java Medium
338 比特位计数 Java Medium
343 整数拆分 Java Medium
344 反转字符串 Java Easy
347 前 K 个高频元素 Java Medium
355 设计推特 Java Medium
365 水壶问题 Java Medium
373 查找和最小的 K 对数字 Go Medium 优先队列
384 打乱数组 Java Medium
394 字符串解码 Java Medium
400 第N个数字 Java Medium
409 最长回文串 Java Easy
410 分割数组的最大值 Java Hard
415 字符串相加 Java Easy
416 分割等和子集 Java Medium 动态规划
445 两数相加 II Java Medium
460 LFU缓存 Java Hard
466 统计重复个数 Java Hard
468 验证IP地址 Java Medium
509 斐波那契数 Java Easy
528 按权重随机选择 C++ Medium 前缀和、二分查找
541 反转字符串 II Java Easy
542 01 矩阵 Java Medium 动态规划
543 二叉树的直径 Java Easy
557 反转字符串中的单词 III Java Easy
560 和为K的子数组 Java Medium 前缀和
572 另一个树的子树 Java Easy
641 设计循环双端队列 Java Medium
680 验证回文字符串 Ⅱ Java Easy 双指针
695 岛屿的最大面积 Java Medium
700 二叉搜索树中的搜索 Java Easy
703 数据流中的第K大元素 Java Easy
709 转换成小写字母 Java Easy
739 每日温度 Java Medium 单调栈
789 逃脱阻碍者 C++ Medium
781 森林中的兔子 Go Medium 贪心
820 单词的压缩编码 Java Medium
837 新21点 Java Medium 动态规划
860 柠檬水找零 Java Easy
876 链表的中间结点 Java Easy
887 鸡蛋掉落 Java Hard 动态规划、二分查找
892 三维形体的表面积 Java Easy
896 单调数列 Go Easy
905 按奇偶排序数组 Java Easy 双指针
912 排序数组 Java Medium 排序算法
914 卡牌分组 Java Easy
922 按奇偶排序数组 II Java Easy 双指针
945 使数组唯一的最小增量 Java Medium
946 验证栈序列 Java Medium
974 和可被 K 整除的子数组 Java Medium 前缀和
983 最低票价 Java Medium 动态规划
990 等式方程的可满足性 Java Medium 并查集
994 腐烂的橘子 Java Easy
999 车的可用捕获量 Java Easy
1013 将数组分成和相等的三个部分 Java Easy
1071 字符串的最大公因子 Java Easy
1095 山脉数组中查找目标值 Java Hard 二分查找
1103 分糖果 II Java Easy
1108 IP 地址无效化 Java Easy
1109 航班预订统计 C++ Medium 差分、前缀和
1111 有效括号的嵌套深度 Java Medium
1114 按序打印 Java Easy
1115 交替打印FooBar Java Medium
1143 最长公共子序列 Java Medium 动态规划
1160 拼写单词 Java Easy
1162 地图分析 Java Medium BFS
1248 统计「优美子数组」 Java Medium 滑动窗口
1371 每个元音包含偶数次的最长子字符串 Java Medium 前缀和、位运算
1431 拥有最多糖果的孩子 Java Easy
1480 一维数组的动态和 C++ Easy
1629 按键持续时间最长的键 Go Easy
lcci-0107 旋转矩阵 Java Medium
lcci-0811 硬币 Java Medium 动态规划
lcci-1001 合并排序的数组 Java Easy
lcci-1006 字符串压缩 Java Easy
lcci-1709 第 k 个数 Java Medium
lcci-1716 按摩师 Java Easy

剑指 Offer

# Title Solution Difficulty Tag
3 数组中重复的数字 Java Easy
4 二维数组中的查找 Java Easy
5 替换空格 Java Easy
6 从尾到头打印链表 Java Easy
7 重建二叉树 Java Medium
9 用两个栈实现队列 Java Easy
10-i 斐波那契数列 Java Easy
10-ii 青蛙跳台阶问题 Java Easy
11 旋转数组的最小数字 Java Easy
12 矩阵中的路径 Java Medium
13 机器人的运动范围 Java Medium
14-i 剪绳子 I Java Medium
14-ii 剪绳子 II Java Medium
15 二进制中1的个数 Java Easy
16 数值的整数次方 Java Medium
17 打印从1到最大的n位数 Java Easy
18 删除链表的节点 Java Easy
19 正则表达式匹配 Java Hard
20 表示数值的字符串 Java Medium
21 调整数组顺序使奇数位于偶数前面 Java Easy
22 链表中倒数第k个节点 Java Easy
24 反转链表 Java Easy
25 合并两个排序的链表 Java Easy
26 树的子结构 Java Medium
27 二叉树的镜像 Java Easy
28 对称的二叉树 Java Easy
29 顺时针打印矩阵 Java Easy
30 包含min函数的栈 Java Easy
31 栈的压入、弹出序列 Java Medium
32-i 从上到下打印二叉树 Java Medium
32-ii 从上到下打印二叉树 II Java Easy
32-iii 从上到下打印二叉树 III Java Medium
33 二叉搜索树的后序遍历序列 Java Medium
34 二叉树中和为某一值的路径 Java Medium 回溯搜索
35 复杂链表的复制 Java Medium
36 二叉搜索树与双向链表 Java Medium
37 序列化二叉树 Java Hard
38 字符串的排列 Java Medium
39 数组中出现次数超过一半的数字 Java Easy
40 最小的k个数 Java Easy
41 数据流中的中位数 Java Hard
42 连续子数组的最大和 Java Easy 动态规划
43 1~n整数中1出现的次数 Java Medium
44 数字序列中某一位的数字 Java Medium
45 把数组排成最小的数 Java Medium
46 把数字翻译成字符串 Java Medium
47 礼物的最大价值 Java Medium
48 最长不含重复字符的子字符串 Java Medium
49 丑数 Java Medium
50 第一个只出现一次的字符 Java Easy
51 数组中的逆序对 Java Hard
52 两个链表的第一个公共节点 Java Easy
53-i 在排序数组中查找数字 Java Easy
53-ii 0~n-1中缺失的数字 Java Easy
54 二叉搜索树的第k大节点 Java Easy
55-i 二叉树的深度 Java Easy
55-ii 平衡二叉树 Java Easy
56-i 数组中数字出现的次数 Java Medium
56-ii 数组中数字出现的次数 II Java Medium
57-i 和为s的两个数字 Java Easy
57-ii 和为s的连续正数序列 Java Easy
58-i 翻转单词顺序 Java Easy
58-ii 左旋转字符串 Java Easy
59-i 滑动窗口的最大值 Java Easy
59-ii 队列的最大值 Java Medium
60 n个骰子的点数 Java Easy
61 扑克牌中的顺子 Java Easy
62 圆圈中最后剩下的数字 Java Easy
63 股票的最大利润 Java Medium
64 求1+2+…+n Java Medium
65 不用加减乘除做加法 Java Easy
66 构建乘积数组 Java Easy
67 把字符串转换成整数 Java Medium
68-i 二叉搜索树的最近公共祖先 Java Easy
68-ii 二叉树的最近公共祖先 Java Easy

About

My LeetCode Solutions