变态青蛙跳
public class Solution {
public int JumpFloorII(int target) {
int[] dp = new int[target+2];
dp[1]=1;
dp[2]=2;
for(int i=3;i<=target;i++){
dp[i]=2*dp[i-1];
}
return dp[target];
}
}
没有想到归纳一下 ,没有想到要自己跳上去多一种方法。
f(n) =f(n-1)+f(n-2)+......+f(1)+1; 加1是因为可以直接跳n个台阶上去。
f(n-1) =f(n-2)+f(n-2)+......+f(1)+1;所以f(n)=2f(n-1);