Skip to content

LeetCode 刷题记录

没有必要把全部的题目都刷一次,主要是覆盖全部的知识点,以及知识点的深度。

横向的扩展练习熟练度,纵向的扩展提升能力。

算法难度分类

  • 入门:可以默写出来,熟练掌握算法
  • 简单:可以写出主要思路,熟练掌握算法
  • 中等:可以看一下解析,然后把思路写出来,算法基本能看懂
  • 困难:不能想出解法,看解似懂非懂,这个算法点不会,需要继续学习

简单算法:四则运算,数组,字符串

中等算法:基础数学,链表,队列,栈,树,二叉树,图,DFS,BFS,滑动窗口,原地算法,回溯算法,一般动态规划

复杂算法:复杂动态规划,很偏的数学(卡特兰数)

数据统计

目标

时间 数据结构 算法 设计 基础架构 总分 完成数量
目标 90 85 79 56 310 1000

2019年

时间 数据结构 算法 设计 基础架构 总分 完成数量
2019-11-07 16 15 0 0 31 50
2019-11-29 24 23 14 21 72 70
2019-12-14 29 29 14 23 95 100

2020年

冬季大量时间学习算法,所以刷题较多,提升较多

时间 数据结构 算法 设计 基础架构 总分 完成数量
2020-10-15 28 28 11 19 86 120
2020-10-29 29 29 11 19 88 122
2020-10-31 30 29 19 19 97 127
2020-11-02 31 30 19 19 99 140
2020-11-03 32 30 19 19 100 143
2020-11-07 33 30 19 19 101 150
2020-11-12 34 31 25 19 109 165
2020-11-13 35 31 27 19 112 170
2020-11-14 35 32 27 19 113 175
2020-11-17 36 32 27 19 114 185
2020-11-18 37 33 29 19 118 197
2020-11-19 37 33 29 19 118 200
2020-11-26 38 33 29 19 119 204
2020-12-01 39 34 29 20 122 220
2020-12-01 40 35 31 20 126 227
2020-12-07 42 35 31 20 128 245
2020-12-08 44 36 31 20 131 265
2020-12-10 45 36 35 20 136 280
2020-12-11 46 36 41 20 144 289
2020-12-13 47 37 41 20 146 300
2020-12-17 48 37 44 20 150 314
2020-12-18 49 38 45 22 155 330
2020-12-23 50 39 49 22 160 350
2020-12-27 52 39 53 22 166 368
2020-12-31 53 39 54 22 168 381

2021年

时间 数据结构 算法 设计 基础架构 总分 完成数量
2021-01-03 54 40 55 22 171 400
2021-01-23 55 41 56 21 173 407
2021-02-03 55 42 56 21 174 431
2021-04-18 56 41 55 21 173 451
2021-05-29 57 42 54 20 173 475
2021-06-19 58 42 54 20 174 487
2021-06-23 58 43 54 20 174 488
2021-09-11 48 42 49 19 158 510
2021-12-31 48 41 48 19 156 533

2022年

时间 数据结构 算法 设计 基础架构 总分 完成数量
2022-02 49 42 49 19 159 568
2022-04 49 42 47 29 167 596
2022-05 49 43 48 29 169 611
2022-06 50 43 47 29 169 640
2022-12 49 42 46 29 166 665

2023年

时间 数据结构 算法 设计 基础架构 总分 完成数量 简单 中等 困难
2023-02 48 42 46 29 165 673 445 209 19
2023-03 49 42 46 29 166 680 445 216 19
2023-04 49 43 46 29 167 695 454 222 19
2023-10 48 42 46 28 164 724 478 228 18

2024年

时间 数据结构 算法 设计 基础架构 总分 完成数量 简单 中等 困难
2024-02 48 42 46 27 163 747 482 245 20

说明:如果有一段时间没有练习,可能新增了很多题目,可能其他人超过了自己,所以有的分数会下降。

2022 记录

1月

  • 0096 困难,不同的二叉搜索树,动态规划或者卡特兰数,有难度
  • 0021 简单,合并两个升序的链表,两个链表迭代
  • 0190 特殊,位运算
  • 0082 中等,删除排序列表中的重复的元素
  • 0142 简单,循环链表找出重复值
  • 1652 中等,分治算法+滑动窗口
  • 1790 入门,遍历两个字符串,找到不同的元素,双索引比较即可
  • 1791 入门,数组获取指定索引的元素
  • 1800 入门,数组获取最大值,循环数组
  • 1941 入门,遍历字符串,记录出现的次数
  • 1945 简单,字符串和数字的转换,递归计算
  • 1967 入门,字符串遍历子字符串
  • 2047 中等,字符串句子中有效的单词数(各种边缘情况比较多)
  • 2062 中等,判断字符串中的元音子字符串个数(正则表达式+循环数组)
  • 2094 入门,循环数组,数组排序
  • 2099 入门,循环数组
  • 1952 简单,三除数,遍历数组求质数,数学算法
  • 2103 入门,遍历数组,对象存储是否出现
  • 2108 入门,判断数组中出现的第一个回文字符串
  • 2114 入门,遍历数组,判断字符串中空格的个数
  • 2119 入门,数学计算
  • 2124 入门,判断字符串中字符的位置
  • 2129 入门,字符串和数组转换,切换大小写
  • 2022 入门,将数组转换成矩阵,数组循环剪切
  • 2027 入门,循环字符串
  • 2032 入门,三个数组之间求交集,对三个交集求并集并去重
  • 2037 入门,数组排序
  • 2042 入门,字符串和数组转换,比较数字
  • 2053 入门,循环数组
  • 2057 入门,循环数组求余数
  • 2068 简单,遍历两个字符串并获取出现次数,比较次数多少
  • 2078 简单,数组双重循环求最值
  • 2089 简单,数组的排序和循环
  • 2133 入门,遍历矩阵,判断横向和纵向元素是否有重复
  • 2138 入门,字符串剪切和计数

2月

完成算法文档

10个算法文档介绍

4月(比较难,都是核心题目)

一部分是动态规划,一部分是二叉树的性质和链表的转换

  • 0098 困难,验证有效的二叉搜索树(二叉搜索树性质,可以递归比较,或者直接中序遍历结果是升序数组)
  • 0102 中等,二叉树的层序遍历(递归遍历节点)
  • 0097 困难,交错字符串(动态规划+滚动数组;或者回溯算法+指针+数组)判断一个字符串是否由两个字符串交错形成的
  • 0152 困难,乘积最大子数组(动态规划,两个方程)
  • 0095 中等,不同的二叉搜索树,遍历树节点
  • 0103 困难,二叉树的锯齿状层序遍历(广度优先遍历)
  • 0105 中等,从前序和中序遍历中,构造二叉树,关键是二叉树性质的灵活掌握
  • 0109 困难,有序列表转换成二叉树(主要是列表和二叉树的数据结构)
  • 0114 中等,二叉树转换成链表(二叉树转换成数组,数组转换成链表)
  • 0116 简单,二叉树的层序遍历
  • 0199 简单,二叉树的右视图(遍历二叉树)
  • 0099 困难,恢复二叉搜索树
  • 0133 中等,克隆图(克隆节点时,需要克隆节点的值和节点邻接关系,字典存储)
  • 0143 中等,重排列表(双指针)
  • 0164 困难,最大间距,基数排序或者桶排序
  • 0040 困难,组合求和,回溯算法中剪枝
  • 0005 困难,最长回文字符串,性能不好
  • 0024 中等,交换链表中的节点
  • 0148 中等,链表排序(并归排序)
  • 0297 简单,二叉树的序列化和反序列化(二叉树和字符串的转换)
  • 0128 中等,最长连续序列
  • 0084 困难,计算给定柱状图的面积(单调栈)
  • 0139 困难,动态规划、广度优先遍历、字典树
  • 0060 困难,现在方法不好,排列序列
  • 0318 特殊,位运算,最大单词长度乘积
  • 0194 特殊,bash
  • 0166 中等,分数到小数,主要是两数字相除,结果不会是无限不循环小数;
  • 2148 入门,数组循环去重

5月

  • 0010 困难,正则表达式匹配,矩阵动态规划
  • 0089 中等,各类编码,位运算
  • 0198 中等,打家劫舍,动态规划
  • 0455 简单,数组排序,贪心算法,双指针(双数组)
  • 2144 入门,数组排序和循环
  • 2154 简单,循环数组中出现的元素
  • 2160 简单,找到一个四位数字中的两个最大值
  • 2164 简单,数组排序和合并
  • 2169 简单,辗转反侧求变成0的次数
  • 2176 入门 数组双重循环 数组去重
  • 2180 入门 循环数字,获取满足条件的数字
  • 2190 入门 循环字符串,找到满足条件的项的个数
  • 2194 简单,循环双重数组,字符串 charCodeAt(index)
  • 2200 简单 数组双重循环
  • 2215 入门 两个数组的补给(不重复的部分)
  • 2206 入门 循环数组,记录次数
  • 2210 入门 计算数组中的波峰和波谷,就是节点的拐点

6月

  • 2235 入门,加法
  • 2236 入门,二叉树加法
  • 2185 入门,循环字符串数组
  • 2220 入门,循环字符串
  • 2224 入门,字符串数字比较
  • 2231 入门,数组循环和排序
  • 2243 入门,字符串和数字的转换
  • 2248 入门,循环矩阵计数

7月

  • 2255 简单,循环字符串,startsWith
  • 2264 入门,循环字符串
  • 2315 入门,循环字符串
  • 2269 入门,循环字符串的子字符串
  • 2273 入门,遍历字符串和数组
  • 2278 入门,循环数组
  • 2283 入门,循环数字
  • 2287 入门,遍历数组和对象
  • 2293 入门,数组迭代
  • 2303 入门,分段函数
  • 2309 简单,字符串循环去重 chasrCodeAt
  • 2347 入门,遍历数组,字符串
  • 2351 入门,遍历数组

10月

  • 0279 困难 广度优先遍历+无向图(完全平方数,使用BFS思路求解)
  • 0127 困难 广度优先遍历+无向图+递归
  • 2295 简单,遍历数组和对象(替换数组的位置)
  • 2319 入门,遍历矩阵
  • 2325 入门,遍历字符串,找到对象位置
  • 2331 入门,遍历布尔二叉树(递归树节点,求和)
  • 2335 中等,装满三个杯子的最短次数,函数递归
  • 2399 入门,数组循环
  • 2404 入门,数组循环+哈希表计数+求最值

12月

  • 0738 中等,贪心算法(数字中,如果不是递减的,那么这一位减少1,后面全部变成9)
  • 0740 中等,动态规划(打家劫舍)+ 哈希表缓存
  • 2341 入门,判断数组中数对个数,考察数组循环,对象
  • 2469 入门,摄氏度和华氏度温度转换,考察加法
  • 更新统计部分 statistics.md