1. 题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
2. 解题
2.1 画图分析
和上一题跳台阶一样,我们画出前几种情况,对图一分析就可以看出规律:
2.2 代码
class Solution:
def jumpFloorII(self, number):
# write code here
if number == 1:
return 1
elif number == 2:
return 2
elif number > 2:
res = 1
for i in range(1, number):
res = res + self.jumpFloorII(i)
return res
3. 优化
3.1 分析
两式相减得:
3.2 代码
class Solution:
def jumpFloorII(self, number):
# write code here
if number == 1:
return 1
elif number == 2:
return 2
elif number > 2:
return pow(2, number-1)