慢慢来
第一步:热门简单题
地址:热门题目&简单题 23道
- 【1】两数之和——字典查找
- 【20】有效的括号——栈
- 【21】合并两个有序链表——递归
- 【53】最大子序和——动态规划
- 【70】爬楼梯——递归
- 【101】对称二叉树——递归
- 【104】二叉树的最大深度——递归
- 【121】买卖股票的最佳时机——遍历
- 【136】只出现一次的数字——“异或”
- 【141】环形链表——快慢指针
- 【155】最小栈——辅助栈
- 【169】多数元素——投票法
- 【198】打家劫舍——动态规划
- 【206】反转链表——链表
- 【226】翻转二叉树——二叉树
- 【234】回文链表——链表
- 【283】移动零
- 【448】找到消失的数字
- 【461】汉明距离
- 【543】二叉树直径
- 【617】合并二叉树
后面计划按照主题来做,顺便把之前学的复习一遍,尤其是各种排序
第二步:剑指offer
地址:剑指offer
- 剑指 Offer 03 数组中重复的数字
- 剑指 Offer 05. 替换空格
- 剑指 Offer 06. 从尾到头打印链表
- 剑指 Offer 09. 用两个栈实现队列
- 剑指 Offer 10 经典递归
- 剑指 Offer 11. 旋转数组的最小数字
- 剑指 Offer 15. 二进制中1的个数
- 剑指 Offer 18. 删除链表的节点
- 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
- 剑指 Offer 22. 链表中倒数第k个节点
- 剑指 Offer 24. 反转链表
- 剑指 Offer 25. 合并两个排序的链表
- 剑指 Offer 27. 二叉树的镜像
- 剑指 Offer 28. 对称的二叉树
- 剑指 Offer 29. 顺时针打印矩阵——递归
- 第一步,p维矩阵
- 第二步,m x n 维矩阵
- 剑指 Offer 30. 包含min函数的栈——栈
- 剑指 Offer 32 打印二叉树——迭代
- 从上到下、每一层从左到右
- 每一层打印到一行
- 之字形顺序打印二叉树
- 剑指 Offer 39. 出现次数超过一半的数字——字典
- 剑指 Offer 40. 最小的k个数——堆排序
- 剑指 Offer 42. 连续子数组的最大和——动态规划
- 剑指 Offer 50. 第一个只出现一次的字符
- 剑指 Offer 52. 两个链表的第一个公共节点
- 剑指 Offer 53 - I. 在排序数组中查找数字 I
- 剑指 Offer 53 - II. 0~n-1中缺失的数字
- 剑指 Offer 54. 二叉搜索树的第k大节点
二叉搜索树的遍历问题:递归解法+迭代解法 - 剑指 Offer 55 - II. 平衡二叉树
- 剑指 Offer 56 数组中出现数字的次数
- 剑指 Offer 57. 和为某个数字
- 找出和为X的两个数字
- 找出所有和为s的连续正数序列
- 剑指 Offer 58 - I. 翻转单词顺序
- 剑指 Offer 58 - II. 左旋转字符串
DAY 7 (2020年12月01日)
这部分是剑指offer中等难度的,需要复习哟~
- 剑指 Offer 59. 滑动窗口的最大值——队列维护最大值的index
- 剑指 Offer 61. 扑克牌中的顺子
- 剑指 Offer 62. 圆圈中最后剩下的数字——队列
- 剑指 Offer 63. 股票的最大利润
- 剑指 Offer 68 - 二叉树的最近公共祖先——递归
- 剑指 Offer 04. 二维数组中的查找——查找
- 逐行二分法,其实效率也还不错
- 转化为图问题
- 剑指 Offer 07. 重建二叉树——递归
- 剑指 Offer 12. 矩阵中的路径——图DFS问题
————————————————————————
算法
- 基础技巧:分治、二分、贪心
- 排序算法:快速排序、归并排序、计数排序
- 搜索算法:回溯、递归、深度优先遍历,广度优先遍历,二叉搜索树等
- 图论:最短路径、最小生成树
- 动态规划:背包问题、最长子序列
数据结构
- 数组与链表:单 / 双向链表
- 栈与队列
- 哈希表
- 堆:最大堆 / 最小堆
- 树与图:最近公共祖先、并查集
- 字符串:前缀树(字典树) / 后缀树
补充
- 用 Rand7() 实现 Rand10()