劍指offer 跳台階擴充套件問題

2021-10-22 01:30:36 字數 628 閱讀 7185

題目描述

乙隻青蛙一次可以跳上1級台階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法。

示例1輸入

3返回值

4

假設跳 n 級台階的跳法數量是 f(n)個。

那麼根據題意,青蛙可能從 n-1 級直接跳上來,也可能從 n-2 級直接跳上來,依次類推:f(n) = f(n - 1) + f(n - 2) + … + f(1)

同理:f(n - 1) = f(n - 2) + f(n - 3) + … + f(1)

所以,將公式 1 中的f(n - 2) + f(n - 3) + … + f(1)替換為f(n - 1)。公式 1 變為:f(n) = f(n - 1) + f(n - 1) = f(n - 1) * 2 (公式 3)

同理:f(n - 1) = f(n - 2) + f(n - 2) = f(n - 2) * 2(公式 4)

結合公式 3 和公式 4: f(n) = f(n - 2) * 2 * 2。因此可以推出:f(n) = 2^(n - 1)

function

jumpfloorii

(number)

《劍指offer》 跳台階問題

本文演算法使用python3實現 1 當 n 0 時,返回0 2 當 n 1 時,只有一種跳法 跳1級台階。3 當 n 2 時,有兩種跳法 a 跳1級再跳1級 b 直接跳2級。4 當 n 3 時,我們只考慮最後一步的情況 a 當最後一步只跳1級時,f 3 f 3 1 b 當最後一步直接跳2級時,f ...

劍指offer 跳台階

跳台階1 題目 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。思路 遞迴思想 可以理解為前面m步的情況加上最後一步的情況,前面m步理解為,m 1步加上最後一步的情況。最後一步分為2中情況,上1級和上2級。如下 class solution 跳台階2 題目 ...

劍指Offer 跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 解析 當青蛙到到n級時,有兩種跳法,一種是從n 1級跳1級,還有種是n 2跳2級 f n f n 1 f n 2 大家對這個公式是不是很熟悉,對,是斐波那契數列。所以這是一道動態規劃的問題。斐波那契數列,只能上...