vlambda博客
学习文章列表

剑指offer--跳台阶(动态规划)


题目描述:

一只青蛙一次可以跳上1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

思路:

  典型的动态规划问题,对于第n阶台阶来说,有两种办法,一种是爬一个台阶,到第n-1阶;第二种是爬两个台阶,到第n-2阶。

得出动态规划递推式:F(n)=F(n-1)+F(n-2)

python实现:


class Solution: def jumpFloor(self, number): if number < 0: return 0 if number == 1: return 1 if number == 2: return 2 result = [1, 2] for i in range(2,number): result.append(result[i-1] + result[i-2]) return result[-1]