zl程序教程

您现在的位置是:首页 >  其它

当前栏目

关于简单刷题

简单 关于 刷题
2023-09-14 08:59:35 时间

 

首先,了解下算法和数据结构有哪些知识点(如上图思维导图所示),形成一个适合自己的coding格局,大局观比较重要。

 

如何正确的做一道题:

(1)从简入手:先从简单暴力(时间复杂度相对高)的方法入手;

(2)优化:思考如何在第一步的基础上优化算法,降低时间复杂度;

(3)构思代码:有了以上两步,此时应该已经有了一个正确的想法,该构思代码了,构思有哪几部分,每部分实现什么功能,代码怎么写。而不是直接闷头上来就开始写代码,导致很多时候没有想清楚整体与细节,导致代码工程半途而废反复迭代;

(4)写代码:想清楚,动手实现;

(5)(debug):若题目未通过测试,应该考虑是不是有逻辑bug等;

(6)总结与反思:题目通过了,很重要的一步是总结与思考,应该总结一下这一道题或这一类题考察的知识点,切入的角度,同类型的题目等,同时思考有没有更优解。

做到以上,一道题的学习就很通透了,遇到同类型的题目就可以有效举一反三啦~

最后一个小妙招,所有人适用:拿出你的真心并且坚持下去。

 

以下为base做题清单,随后随着题目加入,动态新增。

一、数据结构(30题)

1. 数组&双指针

  1. LeetCode 1. 两数之和【简单】
  2. LeetCode 4. 寻找两个正序数组的中位数【困难】
  3. LeetCode 15. 三数之和【中等】
  4. LeetCode 75. 颜色分类【中等】
  5. LeetCode 76. 最小覆盖子串【困难】
  6. LeetCode 142. 环形链表 II【中等】
  7. LeetCode 234. 回文链表【简单】
  8. LeetCode 283. 移动零【简单】

2. 链表

  1. LeetCode 19. 删除链表的倒数第 N 个结点【中等】
  2. LeetCode 148. 排序链表【中等】
  3. LeetCode 160. 相交链表【简单】
  4. LeetCode 206. 反转链表【简单】

3. 队列&栈

  1. LeetCode 20. 有效的括号【简单】
  2. LeetCode 21. 合并两个有序链表【简单】
  3. LeetCode 84. 柱状图中最大的矩形【困难】
  4. LeetCode 85. 最大矩形【困难】
  5. LeetCode 155. 最小栈【简单】
  6. LeetCode 239. 滑动窗口最大值【困难】
  7. LeetCode 394. 字符串解码【中等】
  8. LeetCode 739. 每日温度【中等】
  9. LeetCode 3. 无重复字符的最长子串【中等】

4. 哈希表

  1. LeetCode 49. 字母异位词分组【中等】
  2. 128. 最长连续序列【中等】
  3. LeetCode 141. 环形链表【简单】
  4. LeetCode 146. LRU 缓存机制【中等】
  5. LeetCode 560. 和为K的子数组【中等】

5. 二叉树

  1. LeetCode 94. 二叉树的中序遍历【简单】
  2. LeetCode 101. 对称二叉树【简单】
  3. LeetCode 102. 二叉树的层序遍历【中等】
  4. LeetCode 104. 二叉树的最大深度【简单】
  5. LeetCode 105. 从前序与中序遍历序列构造二叉树【中等】
  6. LeetCode 114. 二叉树展开为链表【中等】
  7. LeetCode 543. 二叉树的直径【简单】

6. 二叉搜索树

  1. LeetCode 96. 不同的二叉搜索树【中等】
  2. LeetCode 98. 验证二叉搜索树【中等】

 

二、算法(47题)

1. 模拟

  1. LeetCode 48. 旋转图像【中等】

2. 贪心

  1. LeetCode 11. 盛最多水的容器【中等】
  2. LeetCode 714. 买卖股票的最佳时机含手续费【中等】
  3. LeetCode 122. 买卖股票的最佳时机 II【中等】
  4. LeetCode 55. 跳跃游戏【中等】
  5. LeetCode 309. 最佳买卖股票时机含冷冻期【中等】
  6. LeetCode 406. 根据身高重建队列【中等】

3. 二分

  1. LeetCode 33. 搜索旋转排序数组【中等】
  2. LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置【中等】

4. 递归&回溯

  1. LeetCode 17. 电话号码的字母组合【中等】
  2. LeetCode 22. 括号生成【中等】
  3. LeetCode 39. 组合总和【中等】
  4. LeetCode 46. 全排列【中等】
  5. LeetCode 78. 子集【中等】
  6. LeetCode 79. 单词搜索【中等】
  7. LeetCode 226. 翻转二叉树【简单】

5. 深度优先搜索DFS

  1. LeetCode 236. 二叉树的最近公共祖先【中等】
  2. LeetCode 301. 删除无效的括号【困难】

6. 宽度优先搜索BFS

  1. LeetCode 200. 岛屿数量【中等】
  2. LeetCode 617. 合并二叉树【简单】

7. 分治

  1. LeetCode 53. 最大子序和【简单】

8. 排序算法

  1. LeetCode 56. 合并区间【中等】
  2. LeetCode 215. 数组中的第K个最大元素【中等】
  3. LeetCode 347. 前 K 个高频元素【中等】

9. Manacher算法

  1. LeetCode 5. 最长回文子串【中等】
  2. LeetCode 647. 回文子串【中等】

10. 字典树Trie

  1. LeetCode 139. 单词拆分【中等】
  2. LeetCode 208. 实现 Trie (前缀树)【中等】

11. 动态规划

  1. LeetCode 10. 正则表达式匹配【困难】
  2. LeetCode 32. 最长有效括号【困难】
  3. LeetCode 42. 接雨水【困难】
  4. LeetCode 62. 不同路径【中等】
  5. LeetCode 64. 最小路径和【中等】
  6. LeetCode 70. 爬楼梯【简单】
  7. LeetCode 72. 编辑距离【困难】
  8. LeetCode 139. 单词拆分【中等】
  9. LeetCode 152. 乘积最大子数组【中等】
  10. LeetCode 198. 打家劫舍【中等】
  11. LeetCode 221. 最大正方形【中等】
  12. LeetCode 300. 最长递增子序列【中等】
  13. LeetCode 337. 打家劫舍 III【中等】
  14. LeetCode 416. 分割等和子集【中等】
  15. LeetCode 494. 目标和【中等】

12. 最短路算法

  1. LeetCode 743. 网络延迟时间【中等】

13. 最小生成树

  1. 1584. 连接所有点的最小费用【中等】

14. 拓扑排序

  1. LeetCode 207. 课程表【中等】

15. 并查集  

  1. LeetCode 399. 除法求值【中等】