【剑指offer】02-青蛙跳台阶

主宰稳场 提交于 2019-12-05 11:31:23

题目:

  一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

 


思考:  n = 1, 1  ---1种  n = 2, 1+1  2   ---2种  n = 3, 1+1+1  1+2,  2+1  ---3种  n = 4, 1+1+1+1      1+1+2, 1+2+1, 2+1+1      2+2   ---5种  n = 5, 1+1+1+1+1      1+1+1+2   *4      1+2+2   *3    ---8种  n随便为多少,都有一个全1的情况。然后剩下的可两两1结合,分奇偶?    醉了,这还在用数学的方式思考!!!傻子!!要变换思维了啊!!重新思考(参考了书):  n > 2的时候,第一次跳可选择跳1级,或者2级。  跳1级:那剩下的n-1级台阶,就是f(n-1)种跳法  跳2级:那剩下的n-2级台阶,就是f(n-2)种跳法  -> f(n) = f(n-1) + f(n-2)  -> 斐波那契!!!!
class Solution:
    def jumpFloor(self, number):
        first = 1
        second = 2
        num = 0
        if number == 1:
            return 1
        elif number == 2:
            return 2
        else:
            for i in range(2, number):
                num = first + second
                first = second
                second = num
            return num
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!