题目:一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级。
求总共有多少总跳法,并分析算法的时间复杂度。
这道题最近经常出现,包括MicroStrategy 等比较重视算法的公司
都曾先后选用过个这道题作为面试题或者笔试题。
思路:
这个题目是组合问题。第一步有两种走法跳1级,跳2级。设f(n)是台阶有n级的总共跳法,那么
f(n) = f(n-1) + f(n -2);
这就划为fibonacci数的问题,对于求fibonacci数的问题,在19题有说明,其复杂度是O(lgn)。
代码见 19题。