关于简单刷题
简单 关于 刷题
2023-09-14 08:59:35 时间
首先,了解下算法和数据结构有哪些知识点(如上图思维导图所示),形成一个适合自己的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. 并查集
相关文章
- PHP Swoole-Demo TCP服务端简单实现
- Java实现 LeetCode 999 车的可用捕获量(简单搜索)
- 关于flask线程安全的简单研究
- Python做简单的字符串匹配详解
- 使用maven+eclipse搭建最简单的struts2的HelloWorld
- redis 简单整理——客户端常见异常[十七]
- go中简单使用kafka
- LNMP详解(四)——LNMP原理与简单部署
- Java控制台版五子棋的简单实现方法
- 【LeetCode Python实现】136. 只出现一次的数字(简单)
- 一步一步写一个简单通用的makefile(一)
- 总结: 在fc23中, 安装音频mp3 视频flv 的播放插件其实很简单, 只要一步就可以了: dnf install gstreamer1-libav
- tmux macOS 安装和简单配置使用
- 简单vector达到
- PHP中“简单工厂模式”实例讲解