【劍指Offer】06跳臺階
阿新 • • 發佈:2018-11-11
題目描述
一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。
時間限制:1秒;空間限制:32768K
解題思路
利用數學歸納法可以看到:當n=1,f(1) = 1;當n=2,f(2) = 2;當n>2,f(n) = f(n-1) + f(n-2)。這是一組斐波那契數列,可以這樣理解:當n=1或2時,跳法是固定的;當n>2時,由於一次只能跳1級或2級,所以第n次的方案可以看作第n-1次方案下跳上1級臺階和第n-2次方案下跳上2級臺階的結果之和。
Python程式碼:
# -*- coding:utf-8 -*- class Solution: def jumpFloor(self, number): # write code here i = 1 j = 2 if number==1: return 1 if number==2: return 2 while number>2: j += i i = j-i number -= 1 return j