题解 | 跳台阶扩展问题

跳台阶扩展问题

https://www.nowcoder.com/practice/22243d016f6b47f2a6928b4313c85387

import java.util.*;


public class Solution {
    // 动态规划
    public int[] dp = new int[23];
    public int jumpFloorII (int number) {
        // write code here
        // 先求出动态规划方程,对于最后一级台阶,我们可以由倒数第二级台阶跳1步,也可以由倒数第三级台阶跳两步,这样就相对于将楼梯倒过来,f(n) = f(n-1) + f(n-2) + ... + f(n-n+1)+f(n-n) = f(0) + f(1) +++ f(n-1);又f(n-1) = f(n-2) +++ f(n-n);整理得 f(n) = f(n - 1) + f(n - 1)
        dp[0] = 1;
        dp[1] = 1;
        for(int i = 2; i<=number;i++){
            dp[i] = 2 * dp[i - 1];
        }
        return dp[number];
    }
}

全部评论

相关推荐

09-14 17:23
门头沟学院
故事和酒66:所以说副业很重要,程序员干到40岁,再怎么也赚300万了,吃吃利息也够活下去
点赞 评论 收藏
分享
09-21 23:16
门头沟学院 Java
传奇逃兵王:招不起就别招,叽里咕噜说啥呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务