劍指offer 08 跳台階

2022-07-08 04:30:08 字數 1007 閱讀 6027

題目描述

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

時間限制:c/c++ 3秒,其他語言6秒 空間限制:c/c++ 64m,其他語言128m

題目示例

示例1:

輸入:
1

返回值:
1

示例2:

輸入:
4

返回值:
5
解法分析我記得這好像是一道小學奧數題?當有n節台階時,如果青蛙最後一步跳一節,那麼它跳n-1節台階時有多少種跳法,跳n節台階時就有多少種跳法;如果青蛙最後一步跳兩節,那麼它跳n-2節台階時有多少種跳法,跳n節台階時就有多少種跳法。可以看出,跳n節台階的跳法種類,相當於跳n-1節台階和跳n-2節台階跳法的和。

熟悉吧?沒錯,這就是個斐波那契數列。解法自然跟上一題斐波那契數列一致。

**

陣列+迴圈:

1

function

jumpfloor(number)

2else

13return

fib[number];14}

15 }

迴圈:

1

function

jumpfloor(number)29

return

res;

10 }

執行結果

劍指offer 08 跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 於本題,前提只有 一次 1階或者2階的跳法。a.如果兩種跳法,1階或者2階,那麼假定第一次跳的是一階,那麼剩下的是n 1個台階,跳法是f n 1 b.假定第一次跳的是2階,那麼剩下的是...

劍指Offer 08 跳台階(遞推)

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 這是一道經典的遞推題目,你可以想如果青蛙當前在第n級台階上,那它上一步是在 呢?顯然,由於它可以跳1級台階或者2級台階,所以它上一步必定在第n 1,或者第n 2級台階,也就是說它跳上n...

牛客 劍指offer 08 跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 跳上1級台階 1種 跳上2級台階 2種 跳上3級台階 跳上n級台階 即 f n f n 1 f n 2 看到這裡你肯定會發現這其實就是 斐波那契數列 的變種,不了解的可以看我這篇文章 ...