剑指Offer:9.变态跳台阶

题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

/*
*当target=0或1时,有1种跳法
*当target=2时,有2种跳法
*...
*当target=n时,有2*dp[target-1]种跳法
*/

public class Solution {
    public int JumpFloorII(int target) {
        if(target==0)return 1;
        else if(target==1)return 1;
        else{
        //自下向上动态规划
        int[]dp=new int[target+1];
        dp[0]=1;
        dp[1]=1;
        for(int i=2;i<=target;i++){
            dp[i]=2*dp[i-1];
        }
        return dp[target];
        }
    }
}

猜你喜欢

转载自blog.csdn.net/waS_TransvolnoS/article/details/95328374