解释:
我们把n级台阶时的跳法看成n的函数,记为f(n)。
当n>=2时,第一次跳的时候有两种不同的选择:

  1. 第一次跳1级,此时跳法的数目等于后面剩下的n-1级台阶的跳法数目,即为f(n-1);
  2. 第一次跳2级,此时跳法数目等于后面剩下的n-2级台阶的跳法数目,即为f(n-2)。
    因此,n级台阶的不同跳法总数为f(n) = f(n-1) + f(n-2)
class Solution:
    def jumpFloor(self, number):
        # write code here
        #此题与菲波那切数列的本质一致
        if number == 1:
            return 1
        if number == 2:
            return 2
        fOne = 1
        fTwo = 2
        for i in range(3,number+1):
            fN = fTwo + fOne
            fOne = fTwo
            fTwo = fN
        return fN