题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路:
这个问题非常容易将表达式写成如下形式就停止:
F(n)=F(0)+F(1)+F(2)+...+F(n-1)
其实我们可以发现还可以写成如下更加简洁的形式:
F(n)=2*F(n-1)
第一次做的时候写成了第一种形式,所以在这里记录一下,
第二种的python代码非递归实现如下:
# -*- coding:utf-8 -*-
class Solution:
def jumpFloorII(self, number):
# write code here
FDict={}
FDict[0]=1
FDict[1]=1
for i in range(2,number+1):
FDict[i]=2*FDict[i-1]
return FDict[number]