几个经典的递归场景:
1. 斐波那契
2. 二叉树的周游(深度:前中后序)
3. 全排列问题(非简单的全排列 -- 允许字母重复)
4. 寻找满足条件的N个数
第一个的变种: 跳台阶
题目:一个台阶总共有n 级,如果一次可以跳1 级,也可以跳 2 级。
求总共有多少总跳法,并分析算法的时间复杂度。
第二个要复习下非递归的写法
第3个:
题目:输入一个字符串,打印出该字符串中字符的所有排列。
例如输入字符串abc,则输出由字符 a、b、c 所能排列出来的所有字符串
abc、acb、bac、bca、cab 和cba。
变种:
已知字符串里的字符是互不相同的,现在任意组合,比如ab,
则输出aa,ab,ba,bb,编程按照字典序输出所有的组合。
第4个:
输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数,
使其和等于 m ,要求将其中所有的可能组合列出来。