首页 > 其他 > 详细

剑指offer_09:变态跳台阶

时间:2020-11-15 21:19:23      阅读:35      评论:0      收藏:0      [点我收藏+]

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

示例 1:
输入:n = 3
输出:4

1、暴力解法

public class Solution {
    public int JumpFloorII(int target) {
        int[] dp=new int[target+1];
        dp[0]=dp[1]=1;
        for(int i=2;i<=target;i++){
            for(int j=0;j<i;j++){
                dp[i]+=dp[j];
            }
        }
        return dp[target];
    }
}

2、动态规划

public class Solution {
    public int JumpFloorII(int target) {
        if(target<2) return 1;
        int res=1;
        for(int i=2;i<=target;i++){
            //res*=2;
            res=res<<1;
        }
        return res;
    }
}

3、数学方法

public class Solution {
    public int JumpFloorII(int target) {
        if(target<2) return 1;
        return (int)Math.pow(2,target-1);
    }
}

剑指offer_09:变态跳台阶

原文:https://www.cnblogs.com/xyz-1024/p/13978677.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!