题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
1 (1)
2 (11,2)
3 (111,21,3,12)
4 (1111,22,13,31,211,112,121,4)
n 2^(n-1)
f(n) = f(n-1) + f(n-2) + .... + f(1)
f(n-1) = f(n-2) + .... + f(1)
f(n) = 2f(n-1) n > 1
f(1) = 1 n = 1
每次可以跳任意级,观察数列的规律是等比数列
# -*- coding:utf-8 -*-
import math
class Solution:
def jumpFloorII(self, number):
# write code here
'''运行时间:29ms,占用内存:5724k'''
return 2 ** (number-1)
return pow(2, number-1)
return math.pow(2, number-1)