1. 程式人生 > >劍指offer 第8題 跳臺階

劍指offer 第8題 跳臺階

描述:

一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。

思路:

逆向思維,倒數第二次和最後一次有兩種情況,跳一次,跳兩次,同理,倒數第二次和倒數第三次也有兩種,有f(n)=f(n-1)+f(n+1),符合斐波那契數列。唯一的區別是,跳臺階是從1, 2開始的,而不是0, 1。

程式碼:

class Solution:
    def jumpFloor(self, number):
        # write code here
        a, b = 1, 2
        if number == 1:
            return 1
        elif number == 2:
            return 2
        else:
            count = 2
            while count < number:
                a, b = b, a + b
                count += 1
            return b

結果:

執行時間:30ms

佔用記憶體:5624k