记录我从 2019.07开始至今的代码、刷题记录
涉及到的算法(Algorithm
)技巧主要有:
- 基础技巧:分治、倍增、二分、贪心
- 排序算法:快速排序、归并排序
- 搜索算法:回溯、递归、DFS、BFS
- 动态规划:背包、最长子序列、计数问题
数据结构(Data Structures
)主要有以下几种:
- 数组
- 链表:单向、双向、循环
- 队列/栈
- 哈希表
- 二叉树/图
- 字符串
前端相关的手写代码有:
# | 题目 | 难度 |
---|---|---|
1 | 两数之和 | 简单 |
7 | 整数反转 | 简单 |
9 | 回文数 | 简单 |
13 | 罗马数字转整数 | 简单 |
14 | 最长公共前缀 | 简单 |
20 | 有效的括号 | 简单 |
21 | 合并两个有序链表 | 简单 |
26 | 删除排序数组中的重复项目 | 简单 |
27 | 移除元素 | 简单 |
28 | 实现strStr() | 简单 |
35 | 搜索插入位置 | 简单 |
53 | 最大子序和 | 简单 |
58 | 最后一个单词的长度 | 简单 |
66 | 加一 | 简单 |
67 | 二进制求和 | 简单 |
69 | x的平方根 | 简单 |
70 | 爬楼梯 | 简单 |
83 | 删除排序链表中的重复元素 | 简单 |
88 | 合并两个有序数组 | 简单 |
100 | 相同的树 | 简单 |
101 | 对称二叉树 | 简单 |
104 | 二叉树的最大深度 | 简单 |
107 | 二叉树的层次遍历二 | 简单 |
108 | 有序数组转换为二叉搜索树 | 简单 |
110 | 合并两个有序数组 | 简单 |
111 | 二叉树的最小深度 | 简单 |
112 | 路径总和 | 简单 |
118 | 杨辉三角形 | 简单 |
119 | 杨辉三角形2 | 简单 |
121 | 买股票的最佳时期 | 简单 |
122 | 买股票的最佳时期2 | 简单 |
125 | 验证回文串 | 简单 |
136 | 只出现一次的数字 | 简单 |
141 | 环形链表 | 简单 |
155 | 最小栈 | 简单 |
160 | 相交链表 | 简单 |
167 | 两序之和2-输入有序数组 | 简单 |
168 | Excel表列名称 | 简单 |
169 | 求众数 | 简单 |
189 | 旋转数组 | 简单 |
193 | 有效电话号码 | 简单 |
198 | 打家劫舍 | 简单 |
203 | 移除链表元素 | 简单 |
206 | 反转链表 | 简单 |
217 | 存在重复元素 | 简单 |
219 | 存在重复元素2 | 简单 |
225 | 队列实现栈 | 简单 |
226 | 翻转二叉树 | 简单 |
232 | 栈实现队列 | 简单 |
234 | 回文链表 | 简单 |
237 | 删除链表中的节点 | 简单 |
242 | 有效的字母异位词 | 简单 |
268 | 缺失数字 | 简单 |
278 | 第一个错误的版本 | 简单 |
283 | 移动零 | 简单 |
292 | NIM游戏 | 简单 |
344 | 反转字符串 | 简单 |
345 | 反转字符串中的元音字符 | 简单 |
349 | 两个数组的交集 | 简单 |
350 | 两个数组的交集2 | 简单 |
387 | 字符中的第一个唯一字符 | 简单 |
392 | 判断子序列 | 简单 |
404 | 左叶子之和 | 简单 |
409 | 最长回文串 | 简单 |
414 | 第三大的数 | 简单 |
437 | 路径总和3 | 简单 |
448 | 找到所有数组中消失的数字 | 简单 |
455 | 分配饼干 | 简单 |
485 | 最大连续1的个数 | 简单 |
509 | 斐波那契函数 | 简单 |
543 | 二叉树的直径 | 简单 |
557 | 反转字符串中的单词3 | 简单 |
561 | 数组拆分1 | 简单 |
566 | 重塑矩形 | 简单 |
572 | 另一个树的子树 | 简单 |
594 | 最长和谐子序列 | 简单 |
605 | 种花问题 | 简单 |
617 | 合并二叉树 | 简单 |
628 | 三个数的最大乘积 | 简单 |
633 | 两数平方之和 | 简单 |
637 | 二叉树的层平均值 | 简单 |
665 | 非递减序列 | 简单 |
669 | 修剪二叉搜索树 | 简单 |
671 | 二叉树中的第二小的节点 | 简单 |
674 | 最长连续递增序列 | 简单 |
680 | 验证回文串2 | 简单 |
724 | 寻找数组的中心索引 | 简单 |
747 | 至少是其他数字两倍的最大数 | 简单 |
876 | 链表的中间节点 | 简单 |
914 | 卡牌分组 | 简单 |
922 | 按奇偶排序数组2 | 简单 |
1252 | 奇数值单元格的数目 | 简单 |
1260 | 二维网格的拆迁 | 简单 |
1266 | 访问所有点的最小时间 | 简单 |
# | 题目 | 难度 |
---|---|---|
2 | 两数相加 | 中等 |
3 | 整数反转 | 中等 |
5 | 最长回文子串 | 中等 |
11 | 整数反转 | 中等 |
15 | 三数之和 | 中等 |
17 | 电话号码的字母组合 | 中等 |
19 | 删除链表的第k个节点 | 中等 |
22 | 括号生成 | 中等 |
24 | 两两交换链表中的节点 | 中等 |
31 | 下一个排列 | 中等 |
34 | 在排序数组中查找元素的第一个和最后一个位置 | 中等 |
39 | 组合总和 | 中等 |
43 | 字符串相乘 | 中等 |
46 | 全排列 | 中等 |
47 | 全排列2 | 中等 |
48 | 旋转图像 | 中等 |
49 | 字母异位词分组 | 中等 |
55 | 跳跃游戏 | 中等 |
56 | 合并区间 | 中等 |
60 | 第k个排列 | 中等 |
61 | 旋转链表 | 中等 |
62 | 不同的路径 | 中等 |
64 | 最小路径和 | 中等 |
71 | 简化路径 | 中等 |
75 | 颜色分类 | 中等 |
78 | 子集 | 中等 |
82 | 删除链表中的重复元素 | 中等 |
86 | 分割链表 | 中等 |
89 | 格雷编码 | 中等 |
92 | 反转链表2 | 中等 |
93 | 复原IP地址 | 中等 |
94 | 二叉树的中序遍历 | 中等 |
96 | 不同的二叉树 | 中等 |
98 | 验证二叉搜索树 | 中等 |
102 | 二叉树的层次遍历 | 中等 |
103 | 二叉树锯齿形遍历 | 中等 |
105 | 从前序与中序遍历序列构造二叉树 | 中等 |
114 | 二叉树展开为链表 | 中等 |
120 | 三角形最小路径和 | 中等 |
139 | 单词拆分 | 中等 |
142 | 环形链表2 | 中等 |
143 | 重排链表 | 中等 |
144 | 前序遍历 | 中等 |
146 | LRU缓存机制 | 中等 |
147 | 对链表进行插入排序 | 中等 |
148 | 排序链表 | 中等 |
151 | 翻转字符串里的单词 | 中等 |
152 | 乘积最大子序列 | 中等 |
153 | 寻找旋转排序数组的最小值 | 中等 |
192 | 统计词频 | 中等 |
200 | 岛屿数量 | 中等 |
215 | 数组中第k个最大元素 | 中等 |
221 | 最大正方形 | 中等 |
230 | 二叉搜索树中第k小的元素 | 中等 |
300 | 最长上升子序列 | 中等 |
328 | 奇偶链表 | 中等 |
347 | 出现频率最高的k个元素 | 中等 |
406 | 根据身高重建数组 | 中等 |
435 | 无重叠区间 | 中等 |
451 | 根据字符出现的频率排序 | 中等 |
452 | 用最少数量的箭引爆气球 | 中等 |
513 | 找树左下角的值 | 中等 |
516 | 最长回文子序列 | 中等 |
524 | 通过删除字母匹配到字典里面最长单词 | 中等 |
540 | 有序数组中的单一元素 | 中等 |
547 | 朋友圈 | 中等 |
560 | 和为k的子数组 | 中等 |
567 | 字符串的排列 | 中等 |
695 | 岛屿的最大面积 | 中等 |
739 | 每日温度 | 中等 |
763 | 划分字母区间 | 中等 |
779 | 第k个语法符号 | 中等 |
1253 | 重构2行二进制矩阵 | 中等 |
1261 | 在受污染的二叉树中查找元素 | 中等 |
1262 | 可被三整除的最大和 | 中等 |
1267 | 统计参与通信的服务器 | 中等 |
1268 | 搜索推荐系统 | 中等 |
# | 题目 | 难度 |
---|---|---|
41 | 缺失的第一个正数 | 困难 |
42 | 接雨水 | 困难 |
51 | N皇后 | 困难 |
128 | 最长连续序列 | 困难 |
145 | 二叉树的后序遍历 | 困难 |
164 | 最大间距 | 困难 |
354 | 俄罗斯套娃 | 困难 |
1269 | 停在原地的方案数 | 困难 |