SorryToPerson logo
返回
算法2026-04-15

算法面试题:递归与分治

总结递归、分治算法模式以及递归问题的分析方法。

算法面试题:递归与分治

1. 什么是递归?

  • 函数调用自身。
  • 需要基准条件终止。
  • 常用于树、回溯、动态规划。

2. 分治算法的核心思想是什么?

  • 将问题拆分为子问题。
  • 分别求解子问题再合并结果。
  • 如归并排序、快速排序。

3. 如何避免递归栈溢出?

  • 控制递归深度。
  • 改写为迭代。
  • 使用尾递归优化(部分语言支持)。

4. 面试常问的递归题有哪些?

  • 二叉树遍历。
  • 全排列。
  • 组合求和。
  • 爬楼梯。

5. 递归题的复杂度如何分析?

  • 用递推式表示时间复杂度。
  • 使用主定理求解分治复杂度。

6. 什么时候应该改用动态规划?

  • 存在重复子问题。
  • 可以用状态压缩或记忆化递归优化。
算法递归分治