从0开始学习算法-如何通过 LeetCode 提高自我
背景
想要学习算法,但是却没有一个系统的学习计划,以为就是做做题,慢慢做总会解决的,但是想想leetcode现在都有1844题了,不按计划规范学习,我可能做题都需要做5年.所以我觉得系统学习比无脑做题要重要很多。在leetCode看过蛋壳大哥的高分题解,发现他自己整理了一个自我学习的题目目录:如何通过 LeetCode 提高自我,所以想着先按蛋壳大哥的目录来试一下,以他的为基础,也会不断根据类型添加一些题上去,完善这个目录。
今日更新(只会将我觉得有代表性的题目更新上来):
字符串操作 443. 压缩字符串 第六题
字符串操作 468. 验证IP地址 第七题
字符串操作 686. 重复叠加字符串匹配 第八题
进度 (昨日之前进度 + 今日完成 / 总共题库)
120 + 5 / 1844
-
Hash相关
1.两数之和 第一题
763. 划分字母区间 第二题
49. 字母异位词分组 第三题
242. 有效的字母异位词 第四题
204. 计数质数 第五题
299. 猜数字游戏 第六题
554. 砖墙 第七题 -
链表操作
2.两数相加 第一题
19.删除链表的倒数第N个节点 第二题
61.旋转链表
138.复制带随机指针的链表
206.反转链表 -
双指针遍历/滑动窗口
3.无重复字符的最长子串 第一题
11.盛最多水的容器 第二题
15.三数之和 第三题
16.最接近的三数之和 第四题
26.删除排序数组中的重复项 第五题
42.接雨水
75. 颜色分类 第六题
209. 长度最小的子数组 第七题
80. 删除排序数组中的重复项 II 第八题
121.买卖股票的最佳时机 -
快慢指针遍历
141.环形链表
202.快乐数 第一题
876.链表的中间结点 -
字符串操作
6.Z字形变换 第一题
12.整数转罗马数字 第二题
13.罗马数字转整数 第三题
14.最长公共前缀 第四题
165. 比较版本号 第五题
443. 压缩字符串 第六题
468. 验证IP地址 第七题
686. 重复叠加字符串匹配 第八题
736.划分字母区间 -
数字操作
7.整数反转 第一题
8.字符串转换整数 第二题
9.回文数 第三题
43.字符串相乘 第四题
172.阶乘后的零 第五题
258.各位相加 第六题 -
数组操作
54.螺旋矩阵 第一题
59.螺旋矩阵|| 第二题
73.矩阵置零 第三题
945.使数组唯一的最小增量
1395. 统计作战单位数 第四题 -
栈相关
20.有效的括号 第一题
32.最长有效括号
155.最小栈
224.基本计算器
316.去除重复字母 -
堆相关
215.数组中的第K个最大元素
347.前K个高频元素 -
递归
21.合并两个有序链表 第一题
50. Pow(x, n) 第二题
101.对称二叉树
104.二叉树的最大深度
226.翻转二叉树
236.二叉树的最近公共祖先 -
分治法/二分法
23.合并K个排序链表
33. 搜索旋转排序数组 第一题
34. 在排序数组中查找元素的第一个和最后一个位置 第四题
74. 搜索二维矩阵 第五题
81. 搜索旋转排序数组 II 第二题
153. 寻找旋转排序数组中的最小值 第三题 -
动态规划
5.最长回文子串 第一题
53.最大子序和 第二题
62. 不同路径 第三题
64.最小路径和
70.爬楼梯
118.杨辉三角
300.最长上升子序列
746.使用最小花费爬楼梯
1277.统计全为1的正方形子矩阵 -
回溯法
10.正则表达式匹配
17.电话号码的字母组合 第一题
22.括号生成 第二题
37. 解数独 第三题
39. 组合总和 第四题
77. 组合 第五题
40. 组合总和 II 第六题
46. 全排列 第七题
47. 全排列 II 第八题
90. 子集 II 第九题
1079. 活字印刷 第十题 -
树的遍历
94.二叉树的中序遍历
102.二叉树的层次遍历
110.平衡二叉树
144.二叉树的前序遍历
145.二叉树的后序遍历 -
二叉搜索树相关
98.验证二叉搜索树
450.删除二叉搜索树中的节点
701.二叉搜索树中的插入操作
我会尽力去完善这个目录,不断地强化自己,提升自己的算法能力。