27.跳臺階問題

 題目:一個臺階總共有n 級,如果一次可以跳1 級,也可以跳2 級。
求總共有多少總跳法,並分析算法的時間複雜度。
首先我們考慮最簡單的情況。如果只有1 級臺階,那顯然只有一種跳法。
如果有2 級臺階,那就有兩種跳的方法了:一種是分兩次跳,每次跳1 級;另外一種就是一
次跳2 級。
現在我們再來討論一般情況。我們把n 級臺階時的跳法看成是n 的函數,記爲f(n)。
當n>2 時,第一次跳的時候就有兩種不同的選擇:一是第一次只跳1 級,
此時跳法數目等於後面剩下的n-1 級臺階的跳法數目,即爲f(n-1);
另外一種選擇是第一次跳2 級,此時跳法數目等於後面剩下的n-2 級臺階的跳法數目,即爲
f(n-2)。
因此n 級臺階時的不同跳法的總數f(n)=f(n-1)+f(n-2)。

分析到這裏,已經是我們熟悉的Fibonacci序列了。

對Fibonacci序列有遞歸和非遞歸方法,非遞歸時間複雜度要小爲O(N)

 

 

看到這裏才知道自已的思維是多麼的窄,唉,那就多看題吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章