牛客-劍指offer 08 | 跳臺階

題目描述

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

題解

跳上1級臺階:1種

跳上2級臺階:2種

跳上3級臺階:

  • 最後跳1級,2種
  • 最後跳2級,1種


跳上n級臺階:

  • 最後跳1級,f(n-1) 種
  • 最後跳2級,f(n-2) 種

即 f(n) = f(n-1) + f(n-2)

看到這裏你肯定會發現這其實就是“斐波那契數列”的變種,不瞭解的可以看我這篇文章 牛客-劍指offer 07 | 斐波那契數列,直接上代碼:

# -*- coding:utf-8 -*-
class Solution:
    def jumpFloor(self, number):
        # write code here
        if number == 1:
            return 1
        elif number == 2:
            return 2
        else:
            n = 0
            n1 = 1
            n2 = 2
            for i in range(3, number+1):
                n = n1 + n2
                n1 = n2
                n2 = n
            return n
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章