前言
准备开始刷Leetcode的时候就有听说剑指offer系列是个不错的入门,涵盖各种题型算法和数据结构。
所以这里开个坑,打算放剑指offer系列的解题,希望总结的同时也能帮助到大家!
数据结构
下表总结了每题涉及的数据结构:
| 题目 | 数组 Array | 字符串 String | 链表 List | 栈 Stack | 二叉树 Tree | 哈希表HashMap | 列队Queue |
|---|---|---|---|---|---|---|---|
| 03. 数组中重复的数字 | √ | ||||||
| 04. 二维数组中的查找 | √ | ||||||
| 05. 替换空格 | √ | ||||||
| 06. 从尾到头打印链表 | √ | √ | |||||
| 07. 重建二叉树 | √ | √ | √ | ||||
| 09. 用两个栈实现队列 | √ | ||||||
| 10-1. 斐波那契数列 | √ | √ | |||||
| 10-2. 青蛙跳台阶问题 | √ | √ | |||||
| 11. 旋转数组中的最小数字 | √ | ||||||
| 12. 矩阵中的路径 | √ | √ | |||||
| 13. 机器人的运动范围 | √ |
算法
下表总结了每题涉及的算法:
| 题目 | 搜索算法 | 递推 | 递归 |
|---|---|---|---|
| 03. 数组中重复的数字 | |||
| 04. 二维数组中的查找 | Binary Search | √ | |
| 05. 替换空格 | |||
| 06. 从尾到头打印链表 | √ | ||
| 07. 重建二叉树 | √ | ||
| 09. 用两个栈实现队列 | |||
| 10-1. 斐波那契数列 | √ | ||
| 10-2. 青蛙跳台阶问题 | √ | √ | |
| 11. 旋转数组中的最小数字 | Binary Search | ||
| 12. 矩阵中的路径 | DFS | √ | |
| 13. 机器人的运动范围 | DFS / BFS |