【LeetCode练习】剑指 Offer 14- I. 剪绳子(中等|JS|动态规划)

一、题目描述

在这里插入图片描述

二、解题思路

动态规划:用dp[i]代表绳子长度为i时所能得到的最大乘积,用j表示将绳子切出长度为j的一段绳子,剩下的长度则为i-j,因为dp[i-j]*dp[j](i-j)*j的大小不确定,因此每一次的内循环都要找出大的一方并存入对应的dp[i]中。

三、代码实现

var cuttingRope = function(n) {
    
    
    let dp = new Array(n+1).fill(1)
    for(let i=3;i<n+1;i++){
    
    
        for(let j=1;j<i;j++){
    
    
            dp[i] = Math.max(dp[i],dp[i-j]*j,j*(i-j))
        }
    }
    return dp[n]
};

猜你喜欢

转载自blog.csdn.net/weixin_40764047/article/details/113065149
今日推荐