题解 | #跳台阶扩展问题#

跳台阶扩展问题

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

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

// 或者数学公式:f(n)=2^(n+1)
public int JumpFloorII(int target) {
  return (int) Math.pow(2, target - 1);
}

解题思想:动态规划,由已知求未知,dp保存前面算出的值,后面是前面每个台阶累积和。或者直接数学公式得出:f(n)=2^(n+1)

#算法##算法笔记#
全部评论

相关推荐

牛至超人:把哈工大,再加大加粗,看见闪闪发光的哈工大字样,面试官直接流口水
投递字节跳动等公司6个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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