【剑指offer】03-变态跳台阶

题目:

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


 

思考:

跟之前的跳台阶差不多,都用到斐波那契数列的思想,只是我咋列举的时候每次都数不清啊喂!

列举完后可以找到规律:跳n级台阶有2^(n-1)种方法,直接return 2**(n-1)居然也可以过…

不过还是要锻炼自己的算法思维啊!

找到通用表达式:f(n) = 2 * f(n-1)  [具体过程见图]

class Solution:
    def jumpFloorII(self, number):
        # return 2 ** (number - 1)  # 找规律的结果
        ret = 1
        if number <= 1:
            return 1
        elif number == 2:
            return 2
        else:
            for i in range(2, number+1):
                num = 2 * ret
                ret = num
            return num
原文地址:https://www.cnblogs.com/RebeccaG/p/11923337.html