持续更新中…

经典题型分类

链表、数组

递归、回溯

自上而下分析、求解

根据前序遍历和中序遍历,重建二叉树

二叉树镜像

迭代、动态规划

自上而下分析、自下而上求解

通常存储有用的中间结果

斐波那契数列、青蛙跳台阶、矩形覆盖

剪绳子

二叉树镜像

二分法

没有一成不变的模版,需灵活应对。

需设计的内容:

计算式:

  • int mid = left + ((right - left) >> 1);

区间处理:

  • 下一区间包含mid,(边界值可能是最终结果)
  • 下一区间不包含mid,(边界值不可能是最终结果)

while条件:

  • while (left < right)
  • while (left <= right)
  • 其他特殊判断条件

返回结果:

  • return left
  • return right

避免陷入死循环

知乎老哥总结的一篇博客,参考链接,可以参考,但没必要背诵。

旋转数组的最小数字

其他

数组中重复数字

替换空格

从尾到头打印链表

二叉树的下一个节点

两个栈实现队列

二进制中1的个数

打印1到最大的n位数

删除链表中重复的节点

表示数值的字符串

调整数组顺序使奇数位于偶数前面(一)

反转链表

合并两个排序的链表