剑指offer | 分类整理

未复习:

27. 字符串排列

29. 最小的k个数

35. 数组中的逆序对

找规律性质:

31. 整数中1出现的次数

41. 和为S的整数(滑动时间窗口)

43. 左旋转字符串(YX=(XT YT) T)

46. 孩子们的游戏

47. 1+2+3+...+n(短路求值)

48. 不用加减乘除做加法

51. 构建乘积数组(矩阵上下三角)

52. 正则表达式匹配

64. 滑动窗口的最大值

数组:

1. 二维数组中的查找

6. 旋转最小数字

13. 调整数组顺序使奇数在偶数前面

19. 顺时针打印矩阵

28. 数组中出现次数超过一半的数字

29. 最小的k个数

32. 把数组排成最小的数

33. 丑数

35. 数组中的逆序对

37. 数组在排序数组中出现的次数

41. 和为S的正整数序列(回溯)

42. 和为S的两个数

45. 扑克牌顺子

51. 构建乘积数组

52. 正则表达式匹配

字符串:

2. 替换空格

27. 字符串排列

34. 第一个只出现一次的字符

43. 左旋转字符串

44. 翻转单词序列

49. 字符串转换成整数

53. 表示数值的字符串

54. 字符流中第一个只出现一次的字符

链表:

3. 倒序打印链表

14. 倒数第k个节点

15. 反转链表

16. 合并两个有序链表

25. 复制复杂链表

36. 两个链表的第一个公共节点

46. 孩子们的游戏

55. 链表的环的入口

56. 删除链表中重复的节点

树(递归):

4. 重建二叉树(前序+中序)

17. 树的子结构

18. 二叉树的镜像

22. 从上到下打印二叉树(层序遍历)

23. 二叉搜索树的后序遍历

24. 二叉树中和为某一值的路径

26. 二叉搜索树与双向链表

38. 二叉树的深度

39. 平衡二叉树

57. 二叉树的下一个中序节点

58. 对称二叉树

61. 序列化二叉树

62. 二叉搜索树的第k个节点

63. 数据流的中位数

栈和队列(辅助栈):

5. 用两个栈实现一个队列

20. 包含min函数的栈

21. 栈的压入和弹出序列

59. 按之字形打印二叉树

60. 二叉树按层打印

64. 滑动窗口的最大值

65. 矩阵中的路径

二进制位运算:

11. 二进制中1的个数

12. 数值的整数次方(快速幂

40. 数组中只出现一次的数

48. 不用加减乘除做加法

排序:

29. 最小的k个数

35. 数组中的逆序对

递归:

7. 斐波那契

8. 跳台阶

9. 变态跳台阶

52. 正则表达式匹配

60. 把二叉树打印成多层

65. 矩阵中的路径

66. 机器人的运动路径

HashMap / 位图:

40. 数组中只出现一次的数

42. 和为S的两个数

45. 扑克牌顺子

50. 数组中重复的数字

54. 字符流中第一个只出现一次的字符

堆:

63. 数据流的中位数

※回溯

65. 矩阵中的路径

66. 机器人的运动范围 

动态规划:

7. 斐波那契

8. 跳台阶

10. 矩形覆盖

30. 连续子数组的最大和

52. 正则表达式匹配

发布了53 篇原创文章 · 获赞 5 · 访问量 1521

猜你喜欢

转载自blog.csdn.net/zhicheshu4749/article/details/103454568