9.剑指offer-变态跳台阶(python)
本题知识点: 贪心
题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解题思路:
f(1)=1, f(2)=2, f(3)=4, f(4)=8 设n+1级f(n+1),有
f(n+1) = f(1) + f(2) + … + f(n)
f(n+2) = f(1) + f(2) + … + f(n+1)
f(n+2)= 2f(1) + 2f(2) + … + 2f(n)
故得f(n+2) = 2f(n+1)
代码如下:
# -*- coding:utf-8 -*-
class Solution:
def jumpFloorII(self, number):
# write code here
if number == 1:
return 1
res = 1
for i in range(number-1):
res *= 2
return res