I really wanna stop,but I just gotta taste for it.
对极客大学算法训练营的题目做一个分类,方便后续查看。
数据结构和算法脑图
链接:数据结构和算法脑图.note
数据结构基础脑图:数据结构基础脑图.note
树 的 脑图:树的脑图.note
排序算法脑图:排序算法脑图.note
•如何理解算法时间复杂度的表示法
简单:
LeetCode - 1.两数之和(暴力,哈希)2
LeetCode - 66. 加一(数学、数组)
中等:
LeetCode - 11. 盛最多水的容器 2
简单:
LeetCode - 20.有效的括号(栈) 1
LeetCode - 155.最小栈
LeetCode - 剑指 Offer 59 - I. 滑动窗口的最大值(双端队列)
LeetCode -844. 比较含退格的字符串(栈、双指针)
简单:
LeetCode - 1.两数之和(暴力,哈希)2
LeetCode - 202. 快乐数(快慢指针、哈希表)——快慢指针、判断链表是否有环
LeetCode - 169.多数元素(哈希表、分治)【map的几种遍历方式】
LeetCode - 242.有效的字母异位词(逻辑暴力,排序,哈希) 3
LeetCode - 1160.拼写单词(哈希表)
LeetCode - 1207. 独一无二的出现次数(哈希表)
LeetCode - 1365. 有多少小于当前数字的数字(哈希表、排序)
中等:
LeetCode - 15. 三数之和 2
LeetCode - 49. 字母异位词分组(哈希)2
LeetCode - 36. 有效的数独(哈希表)
LeetCode - 94、144、145. 二叉树的前、中、后序遍历(不咋会,需要多看)重点!!
LeetCode - 589. N叉树的前序遍历、后序遍历、层序遍历(递归、迭代)
LeetCode - 235. 二叉搜索树的最近公共祖先(树的遍历,一次遍历、两次遍历)
LeetCode - 236. 二叉树的最近公共祖先(树的遍历)
…
简单:
LeetCode - 70. 爬楼梯(人肉递归、动态规划)2
LeetCode - 104.二叉树的最大深度(递归)1 (需要补充迭代的代码)
LeetCode - 111.二叉树的最小深度(递归)1 (需要补充迭代的代码)
LeetCode - 226.翻转二叉树(迭代、递归)2
中等:
LeetCode - 22. 括号的生成(递归)1
LeetCode - 98. 验证二叉搜索树(迭代、递归)2
236. 二叉树的最近公共祖先
105. 从前序与中序遍历序列构造二叉树
77. 组合
46. 全排列
47. 全排列 ii
困难:
LeetCode - 50. Pow(x,n) 计算 x 的 n 次幂函数(递归,分治的思想)
LeetCode - 78. 子集(迭代、递归)
LeetCode 17. 电话号码的字母组合(回溯、递归)
LeetCode - 37. 解数独(回溯法)
LeetCode - 51. N 皇后(回溯法)
中等:
LeetCode 102. 二叉树的层序遍历(广度优先遍历BFS)
Leetcode - 515. 在每个树行中找最大值 (BFS、DFS)
433. 最小基因变化
22. 括号生成
200. 岛屿数量
127. 单词接龙
简单:
LeetCode - 455. 分发饼干(贪心 + 双指针)
LeetCode - 122. 买卖股票的最佳时机II(贪心算法、数组、动态规划)
860. 柠檬水找零
874. 模拟行走机器人
中等:
LeetCode - 55. 跳跃游戏(贪心)
困难:
45. 跳跃游戏 II
简单:
LeetCode - 69. x 的平方根(二分查找、牛顿法)
LeetCode - 367. 有效的完全平方数(二分查找、牛顿法)
中等:
LeetCode - 74. 搜索二维矩阵(二分法)
LeetCode - 33. 搜索旋转排序数组(暴力、二分)
中等:
LeetCode - 53. 最大子序和(分治、动态规划)---- 题解 python
LeetCode - 62. 不同路径 (动态规划、递归、自底向上)
LeetCode - 63. 不同路径II(动态规划、递归)
LeetCode - 70. 爬楼梯(人肉递归、动态规划)2
LeetCode - 120. 三角形最小路径和(动态规划、递归、记忆搜索)
LeetCode - 152. 乘积最大子数组(动态规划)
LeetCode - 322. 零钱兑换(递归、记忆化搜索、动态规划、广度优先)
LeetCode - 1143. 最长公共子序列(动态规划)
LeetCode - 面试题 01.05. 一次编辑(动态规划)
实战题目
LeetCode - 198. 打家劫舍(动态规划)——(程序员面试金典 - 面试题 17.16. 按摩师)
213. 打家劫舍 II
121. 买卖股票的最佳时机
122. 买卖股票的最佳时机 II
123. 买卖股票的最佳时机 III
309. 最佳买卖股票时机含冷冻期
188. 买卖股票的最佳时机 IV
714. 买卖股票的最佳时机含手续费
高级 DP 实战题目
279. 完全平方数
72. 编辑距离 (重点)
55. 跳跃游戏
45. 跳跃游戏 II
62. 不同路径
63. 不同路径II
980. 不同路径 III
322. 零钱兑换
518. 零钱兑换 II
32. 最长有效括号
64. 最小路径和
72. 编辑距离
91. 解码方法
221. 最大正方形
363. 矩形区域不超过 K 的最大数值和
403. 青蛙过河
410. 分割数组的最大值
552. 学生出勤记录 II
621. 任务调度器
647. 回文子串
76. 最小覆盖子串
312. 戳气球
字典树:
LeetCode - 208. 实现 Trie (前缀树)(字典树)
并查集:
【极客大学-算法训练营】高级搜索:剪枝、双向BFS、启发式搜索(A*)
剪枝:
• 70. 爬楼梯
• 22. 括号生成
• 51. N 皇后
• 36. 有效的数独
• 37. 解数独
双向BFS:
• 127. 单词接龙
• 433. 最小基因变化
启发式搜索(A*):
• 1091. 二进制矩阵中的最短路径
• 773. 滑动谜题
• 37. 解数独
AVL和红黑树的一些概念
LeetCode - 按标签分类刷题(位运算题解)
布隆过滤器和LRU Cache的一些概念
LeetCode - 146. LRU 缓存机制(不会,重点!!!!)
1122. 数组的相对排序
242. 有效的字母异位词
LeetCode - 56. 合并区间(排序算法)
LeetCode - 493. 翻转对(归并排序)
可参考链接:【庄小炎】字符串算法
字符串基础问题
题解: LeetCode - 字符串基础问题(另附以上题目解析)
字符串操作问题
题解:LeetCode - 字符串操作问题(另附以上题目解析)
异位词问题
LeetCode - 异位词问题(另附以上题目解析)
回文串问题
LeetCode - 回文串问题(另附以上题目解析)
最长子串、子序列问题
字符串 +DP 问题
字符串课后作业: