关于简单刷题

首先,了解下算法和数据结构有哪些知识点(如上图思维导图所示),形成一个适合自己的coding格局,大局观比较重要。
如何正确的做一道题:
(1)从简入手:先从简单暴力(时间复杂度相对高)的方法入手;
(2)优化:思考如何在第一步的基础上优化算法,降低时间复杂度;
(3)构思代码:有了以上两步,此时应该已经有了一个正确的想法,该构思代码了,构思有哪几部分,每部分实现什么功能,代码怎么写。而不是直接闷头上来就开始写代码,导致很多时候没有想清楚整体与细节,导致代码工程半途而废反复迭代;
(4)写代码:想清楚,动手实现;
(5)(debug):若题目未通过测试,应该考虑是不是有逻辑bug等;
(6)总结与反思:题目通过了,很重要的一步是总结与思考,应该总结一下这一道题或这一类题考察的知识点,切入的角度,同类型的题目等,同时思考有没有更优解。
做到以上,一道题的学习就很通透了,遇到同类型的题目就可以有效举一反三啦~
最后一个小妙招,所有人适用:拿出你的真心并且坚持下去。
以下为base做题清单,随后随着题目加入,动态新增。
一、数据结构(30题)
1. 数组&双指针
- LeetCode 1. 两数之和【简单】
- LeetCode 4. 寻找两个正序数组的中位数【困难】
- LeetCode 15. 三数之和【中等】
- LeetCode 75. 颜色分类【中等】
- LeetCode 76. 最小覆盖子串【困难】
- LeetCode 142. 环形链表 II【中等】
- LeetCode 234. 回文链表【简单】
- LeetCode 283. 移动零【简单】
2. 链表
- LeetCode 19. 删除链表的倒数第 N 个结点【中等】
- LeetCode 148. 排序链表【中等】
- LeetCode 160. 相交链表【简单】
- LeetCode 206. 反转链表【简单】
3. 队列&栈
- LeetCode 20. 有效的括号【简单】
- LeetCode 21. 合并两个有序链表【简单】
- LeetCode 84. 柱状图中最大的矩形【困难】
- LeetCode 85. 最大矩形【困难】
- LeetCode 155. 最小栈【简单】
- LeetCode 239. 滑动窗口最大值【困难】
- LeetCode 394. 字符串解码【中等】
- LeetCode 739. 每日温度【中等】
- LeetCode 3. 无重复字符的最长子串【中等】
4. 哈希表
- LeetCode 49. 字母异位词分组【中等】
- 128. 最长连续序列【中等】
- LeetCode 141. 环形链表【简单】
- LeetCode 146. LRU 缓存机制【中等】
- LeetCode 560. 和为K的子数组【中等】
5. 二叉树
- LeetCode 94. 二叉树的中序遍历【简单】
- LeetCode 101. 对称二叉树【简单】
- LeetCode 102. 二叉树的层序遍历【中等】
- LeetCode 104. 二叉树的最大深度【简单】
- LeetCode 105. 从前序与中序遍历序列构造二叉树【中等】
- LeetCode 114. 二叉树展开为链表【中等】
- LeetCode 543. 二叉树的直径【简单】
6. 二叉搜索树
二、算法(47题)
1. 模拟
2. 贪心
- LeetCode 11. 盛最多水的容器【中等】
- LeetCode 714. 买卖股票的最佳时机含手续费【中等】
- LeetCode 122. 买卖股票的最佳时机 II【中等】
- LeetCode 55. 跳跃游戏【中等】
- LeetCode 309. 最佳买卖股票时机含冷冻期【中等】
- LeetCode 406. 根据身高重建队列【中等】
3. 二分
4. 递归&回溯
- LeetCode 17. 电话号码的字母组合【中等】
- LeetCode 22. 括号生成【中等】
- LeetCode 39. 组合总和【中等】
- LeetCode 46. 全排列【中等】
- LeetCode 78. 子集【中等】
- LeetCode 79. 单词搜索【中等】
- LeetCode 226. 翻转二叉树【简单】
5. 深度优先搜索DFS
6. 宽度优先搜索BFS
7. 分治
8. 排序算法
9. Manacher算法
- LeetCode 5. 最长回文子串【中等】
- LeetCode 647. 回文子串【中等】
10. 字典树Trie
11. 动态规划
- LeetCode 10. 正则表达式匹配【困难】
- LeetCode 32. 最长有效括号【困难】
- LeetCode 42. 接雨水【困难】
- LeetCode 62. 不同路径【中等】
- LeetCode 64. 最小路径和【中等】
- LeetCode 70. 爬楼梯【简单】
- LeetCode 72. 编辑距离【困难】
- LeetCode 139. 单词拆分【中等】
- LeetCode 152. 乘积最大子数组【中等】
- LeetCode 198. 打家劫舍【中等】
- LeetCode 221. 最大正方形【中等】
- LeetCode 300. 最长递增子序列【中等】
- LeetCode 337. 打家劫舍 III【中等】
- LeetCode 416. 分割等和子集【中等】
- LeetCode 494. 目标和【中等】
12. 最短路算法
13. 最小生成树
- 1584. 连接所有点的最小费用【中等】
14. 拓扑排序
15. 并查集
天雨虽宽,不润无根之草。
佛门虽广,不渡无缘之人。
浙公网安备 33010602011771号