劍指offer No 8 跳台階

2021-10-03 23:58:56 字數 524 閱讀 6830

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

輸入:2

返回值:2

輸入:7

返回值:21

首先我們考慮最簡單的情況。如果只有1個台階,那麼顯然只有一種跳法;如果是2級台階,那麼有2種跳法。對於乙個有n級台階的樓梯來說,我們設跳法為 f(n) ,假如我們先跳1個台階,則剩下有 n-1 個台階,跳法為 f(n-1) 次,假如我們先跳2個台階,則剩下 n-2 階,跳法為 f(n-2);由此可以推出,對於乙個n階的樓梯,有以下這個跳台階的公式:

時間複雜度:o(2^n)

空間複雜度:遞迴棧的空間

8 劍指offer 跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 比較傾向於找規律的解法,f 1 1,f 2 2,f 3 3,f 4 5,可以總結出f n f n 1 f n 2 的規律,但是為什麼會出現這樣的規律呢?假設現在6個台階,我們可以從第5...

8 劍指offer 跳台階

題目描述 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。解題思路 f n f n 1 f n 2 且0 1 2需要單獨處理 1 include 2 using namespace std 3class solution 9int f1 1 10 int f...

劍指 跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 分析 因為只能跳1級或2,假設n階有f n 種跳法。所以有兩種情況 a 如果第一次跳的是1階,那麼剩下的n 1個台階,跳法有f n 1 b 如果第一次跳的是2階,那麼剩下的n 2個台階...