劍指offer刷題-跳臺階
阿新 • • 發佈:2018-12-13
1. 跳臺階
題目描述:一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。
題目分析
結果數滿足一個公式,從簡單的開始推導結果。
臺階數 n 結果數 f(n) 0 0 1 1 2 2 3 3 4 5 n f(n-1) + f(n-2)
下面是程式碼實現,當n<=2時,返回定義好的陣列,當大於2時,開始進行迴圈計算。相比於遞迴演算法,時間複雜度要小,因為每次計算的結果都儲存了下來。
# -*- coding:utf-8 -*-
# python2.7
class Solution :
def jumpFloor(self, n):
# write code here
re = [0,1,2]
if n<=2:
return re[n]
else:
for i in range(3,n+1):
re.append(re[i-1] + re[i-2])
return re[n]