剑指Offer刷题笔记——变态跳台阶

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

只考虑最后一步时候,距离n级台阶1级时候有f(n-1)种方法,2级时候有f(n-2)种方法.........。所以可以得到f(n) = f(n-1)+f(n-2)+....+f(1)+1。得到f(n) = 2*f(n-1),也就是得到f(n) = 2^(n-1)

# -*- coding:utf-8 -*-
class Solution:
    def jumpFloorII(self, number):
        # write code here
        if number <= 2:
            return number
        total = 1
        for _ in range(1, number):
            total *= 2
        return total

 

你可能感兴趣的:(剑指Offer刷题笔记——变态跳台阶)