Back to Leetcode

剑指 Offer 题目分类

sword_for_offer/剑指 Offer 题目分类.md

latest7.5 KB
Original Source

剑指 Offer 题目分类

下表划分了各题使用的算法与数据结构。由于题目可能存在多种解法,本表格只列举最优解法(时间与空间复杂度最低)的对应算法。

题目算法分类数据结构分类
03. 数组中重复的数字查找算法数组
04. 二维数组中的查找查找算法数组
05. 替换空格字符串
06. 从尾到头打印链表栈 / 队列,链表
07. 重建二叉树分治算法树,哈希表
09. 用两个栈实现队列栈 / 队列
10-I. 斐波那契数列动态规划
10-II. 青蛙跳台阶问题动态规划
11. 旋转数组的最小数字查找算法数组
12. 矩阵中的路径回溯算法,搜索算法数组,图
13. 机器人的运动范围回溯算法,搜索算法数组,图
14-I. 剪绳子贪心算法,数学
14- II. 剪绳子 II贪心算法,分治算法,数学
15. 二进制中 1 的个数位运算
16. 数值的整数次方分治算法,位运算
17. 打印从 1 到最大的 n 位数数组
18. 删除链表的节点双指针链表
19. 正则表达式匹配动态规划字符串
20. 表示数值的字符串字符串
21. 调整数组顺序使奇数位于偶数前面双指针数组
22. 链表中倒数第 k 个节点双指针链表
24. 反转链表双指针链表
25. 合并两个排序的链表双指针链表
26. 树的子结构搜索算法
27. 二叉树的镜像搜索算法栈 / 队列,树
28. 对称的二叉树搜索算法
29. 顺时针打印矩阵模拟数组
30. 包含 min 函数的栈排序栈 / 队列
31. 栈的压入、弹出序列模拟栈 / 队列
32-I. 从上到下打印二叉树搜索算法栈 / 队列,树
32-II. 从上到下打印二叉树 II搜索算法栈 / 队列,树
32-III. 从上到下打印二叉树 III搜索算法栈 / 队列,树
33. 二叉搜索树的后序遍历序列分治算法栈 / 队列,树
34. 二叉树中和为某一值的路径回溯算法,搜索算法
35. 复杂链表的复制链表
36. 二叉搜索树与双向链表搜索算法,双指针
37. 序列化二叉树搜索算法
38. 字符串的排列回溯算法字符串,哈希表
39. 数组中出现次数超过一半的数字数组
40. 最小的 k 个数排序数组,堆
41. 数据流中的中位数排序
42. 连续子数组的最大和动态规划数组
43. 1 ~ n整数中 1 出现的次数数学
44. 数字序列中某一位的数字数学
45. 把数组排成最小的数排序字符串
46. 把数字翻译成字符串动态规划字符串
47. 礼物的最大价值动态规划数组
48. 最长不含重复字符的子字符串动态规划,双指针哈希表
49. 丑数动态规划
50. 第一个只出现一次的字符哈希表
51. 数组中的逆序对分治算法数组
52. 两个链表的第一个公共节点双指针链表
53-I. 在排序数组中查找数字 I查找算法数组
53-II. 0 ~ n - 1 中缺失的数字查找算法数组
54. 二叉搜索树的第 k 大节点搜索算法
55-I. 二叉树的深度搜索算法
55-II. 平衡二叉树搜索算法
56-I. 数组中数字出现的次数位运算数组
56-II. 数组中数字出现的次数 II位运算数组
57. 和为 s 的两个数字双指针数组
57-II. 和为 s 的连续正数序列双指针数组
58-I. 翻转单词顺序双指针字符串
58-II. 左旋转字符串字符串
59-I. 滑动窗口的最大值排序数组,栈 / 队列
59-II. 队列的最大值排序数组,栈 / 队列
60. n 个骰子的点数动态规划
61. 扑克牌中的顺子排序数组,哈希表
62. 圆圈中最后剩下的数字数学
63. 股票的最大利润动态规划数组
64. 求 1 + 2 + … + n
65. 不用加减乘除做加法位运算
66. 构建乘积数组数学数组
67. 把字符串转换成整数字符串
68-I. 二叉搜索树的最近公共祖先搜索算法
68-II. 二叉树的最近公共祖先搜索算法