题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
首先用动态规划的思考方式跳到第i阶台阶的方法数量应为之前所有阶数各自的方法总和即dp[0] + dp[1] +dp[2] + ……+dp[i -1]注意起始位置也应该算为一种。
找到规律dp[i] = 2 * dp[i -1]
因此dp[i] = 2 ^ (i - 1)
public int JumpFloorII(int target) {
return (int)(2 * Math.pow(2,target - 1));
}