返回介绍

67.剪绳子

发布于 2023-08-30 21:54:39 字数 476 浏览 0 评论 0 收藏 0

给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],...,k[m]。请问k[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。

public class Solution {
  public int cutRope(int target) {
    int[] dp = new int[target+1];
    dp[1] = 1;
    for(int i = 2; i <= target; i++){
      for(int j = 1; j < i; j++){
        dp[i] = Math.max(dp[i], Math.max(j*dp[i-j], j*(i-j)));
      }
    }
    return dp[target];
  }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文