劍指Offer 跳台階

2021-10-03 16:44:47 字數 844 閱讀 4680

1. 問題描述

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

2. 解題思路

**方法1:**數學歸納法(遞迴演算法)

①:假設有n級台階,n>2,那麼第一次跳有兩種可能,跳1級或者跳兩級

②:那麼所有可能的跳法 = 第一次跳一級的可能 + 第一次跳二級的可能

假設第一次跳1級,那麼還剩下n-1個台階

假設第一次跳2級,那麼還剩下n-2個台階

用數學表示式來表示就是f(n) = f(n-1) + f(n - 2)

③:關有表示式是不行的,還得有確定的值,很容易得出f(1) = 1,f(2) = 2,所以,顯而易見 。

④:不管n = ?,最終都可以轉換成只含f(1)和f(2)的計算

**方法2:**找規律(斐波那契數列)

①:由方法1遞迴演算法介紹中可以發現得到的資料就是斐波那契數列,但是比斐波那契數列要快。f(3) == fibonacci[2],所以在斐波那契數 列上需要做一些更改

②:斐波那契數列介紹:斐波那契數列

3. c/c++源**

方法1:遞迴演算法

class

solution}}

;

方法2:找規律->(斐波那契數列)

class

solution

return fibonacci_num;}}

};

劍指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級的台階總共有多少種跳法。思路 首先窮舉一下到達最後一級台階的情況,分析最後到達是一步還是兩步。...