前言
准备开始刷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 |