異常なジャンプ階段(安全offer_10.4を証明するために)

タイトル説明


カエルは、クラス1レベルにジャンプすることができます。また、レベル2に飛び乗っすることができます... nは、それはまた、ステージ上でジャンプすることができます。カエルはどのように多くのジャンプのn級レベルの合計を求めて飛び込みました。

問題解決のためのアイデア


ダイナミックプログラミング

公共 INT JumpFloorII(int型のターゲット)
{ 
    INT [] DP = 新しい INT [標的]。
    Arrays.fill(DP、 1 )。
    以下のためにINT ; I <ターゲットI ++ I 1 = のためのINT J = 0; J <I、J ++ 
            DP [I] + = DP [j]を。
    戻り DP [ターゲット-1 ]。
}

数学的導出

ジャンプ階段N-1、N-2二段のn-3からジャンプアップすることができる、ステージアップレベル1からジャンプすることができ...、次いで

F(N-1)= F(N-2)+ F(N-3)+ ... + F(0)

また、ジャンプn個のステップは、レベル1レベルN-1からジャンプアップすることができ、ステージ2は、N-2 ...アップステージからジャンプすることができます

F(N)= F(N-1)+ F(N-2)+ ... + F(0)

利用可能要約

F(N) - F(N-1)= F(N-1)

その

F(N)= 2 * F(N-1)

したがって、F(n)は、幾何学的配列であります

公共 INT JumpFloorII(int型のターゲット){
     リターンINT)Math.pow(2、ターゲット- 1 )。
}

おすすめ

転載: www.cnblogs.com/ziytong/p/12096708.html