問題
カエルは、クラス1レベルにジャンプすることができます。また、レベル2に飛び乗っすることができます...... nはまた、ステージの上にジャンプすることができます。
カエルはどのように多くのジャンプのn級レベルの合計を求めて飛び込みました。
アルゴリズム1
dp问题
- 場合N = N、nは様子をホップがあり、一次、二次... N順序は、結論:
F(N)= F(N-1)+ F(N-2)+ ... + F(nは- (N-1))+ F(NN)- F(N-1)= F (0)+ F(1)+ F(2)+ F(3)+ ... + F((N-1)-1)
の両方をLにすることができます
f(n)=2f(n-1)
public int JumpFloorII(int target) {
if(target==1){
return 1;
}
if(target==2){
return 2;
}
//将大问题划分为小问题进行解决
return JumpFloorII(target-1)*2;
}
アルゴリズム2
各ステップは、最後のステップは、ジャンプしなければならジャンプして(最後のステップを除く)の両方のケースでジャンプしないことがあります。したがって、共通の2(N-1)^場合
//每一个台阶都有跳与不跳两种情况(除了最后一个台阶)最后一个台阶必须跳,所以共有2^(n-1)中情况
public int JumpFloorII2(int target){
return (int)Math.pow(2,target-1);
}