劍指offer 跳台階

2021-10-01 17:06:33 字數 729 閱讀 9648

題目描述

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

思路

該題本質上還是斐波那契數列,可以自行驗證。如果考慮成dp問題,分解問題規模的思路為,第n個台階是由n-1或者n-2的台階上來的,因此上n個台階的跳法總數為上n-1台階跳法總數和n-2台階跳法總數的和。

當然dp的初始值為:

dp[1] = 1,乙個台階就一種跳法;

dp[2] = 2,兩個台階兩種跳法,第一種兩次一步,第二種一次兩步。

dp的遞推關係:dp(i) = dp(i-2) + dp(i-1)

**

public

class

solution

int[

] dp =

newint

[target+1]

; dp[1]

=1; dp[2]

=2;for

(int i=

3;i<=target;i++

)return dp[target];}

}

總結

dp問題三步走:

1.縮小問題規模

2.尋找遞推關係

3.尋找初始值

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