乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法(先後次序不同算不同的結果)。
斐波那契數列:
斐波那契數列指的是這樣乙個數列: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368。
可以觀察到,從第3個數開始,每個數的值都等於前連個數之和。
同時,定義f(0)=0, f(1)=1.
則 f(2)=f(1)+f(0)=1;
f(3)=f(2)+f(1)=2;
... 依次類推,
f(n)=f(n-1)+f(n-2)
該問題實質是斐波那契數列求和,遞推公式為 f(n)=f(n-1)+f(n-2);可以考慮,小青蛙每一步跳躍只有兩種選擇:一是再跳一級階梯到達第 i 級階梯,此時小青蛙處於第 i-1 級階梯;或者再跳兩級階梯到達第 i 級階梯,此時小青蛙處於第 i-2 級階梯。小青蛙跳n層的有f(n)種跳法,跳到n-1層時是分f(n-1)種跳法,跳到n-2層時是f(n-2)種跳法,所以f(n)=f(n-1)+f(n-2)。
第二種方法:
劍指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 大家對這個公式是不是很熟悉,對,是斐波那契數列。所以這是一道動態規劃的問題。斐波那契數列,只能上...
劍指Offer 跳台階
author tom qian email tomqianmaple outlook.com github date 2017年8月10日 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。思路 首先窮舉一下到達最後一級台階的情況,分析最後到達是一步還是兩步。...