1. 程式人生 > >劍指offer刷題-變態跳臺階問題

劍指offer刷題-變態跳臺階問題

時間限制:1秒 空間限制:32768K 熱度指數:244626
題目描述
一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。。

題目分析

依舊從簡單到複雜
結果數滿足一個公式,從簡單的開始推導結果。

臺階數 n 結果數 f(n)
0 0
1 1
2 2
3 4
4 8
5 16
n f(n) = 2 x f(n-1)

下面是程式碼實現,當n<=2時,返回定義好的陣列,當大於2時,開始進行迴圈計算。相比於遞迴演算法,時間複雜度要小,因為每次計算的結果都儲存了下來。

# -*- coding:utf-8 -*-
class Solution:
    def jumpFloorII(self, number):
        # write code here
re = [0,1,2] if number<=2 : return re[number] else: for i in range(3,number+1): re.append(2 * re[i-1]) return re[number]