剪绳子

作者: HellyCla | 来源:发表于2021-03-04 20:01 被阅读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。

  • 解题思路:
    动态规划,从长度为1的区间乘积最大值更新到长度为n的最大值,区间在分割时,由于最大长度n,最多分n份,相当于任意区间能切割任意整数长度,那任意区间都能由几个长度为1的区间组成,因此更新时当前区间的最大长度就是任意两个子区间的最大乘积值(子区间也是从1更新过来的),从小到大更新即可。

  • 解题代码:

class Solution:
    def cutRope(self, number):
        # write code here
        dp=[0 for _ in range(number+1)]
        dp[1]=1
        dp[2]=2
        dp[3]=3
        if number >= 4:
            for i in range(4,number+1):
                for j in range(1,i//2+1):
                    dp[i]=max(dp[j]*dp[i-j],dp[i])
        return dp[number]

相关文章

  • 剪绳子

    题目描述 给定一根长度为n的绳子,请把绳子剪成m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0]...

  • 剪绳子

    《剑指offer》面试题14:剪绳子 题目:给你一根长度为n的绳子,请把绳子剪成m段 (m和n都是整数,n>1并且...

  • 剪绳子

    题目描述:给你一根长度为n的绳子,请把绳子剪成m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0]...

  • 剪绳子

    给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为...

  • 剪绳子

    题目描述 给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为...

  • 剪绳子

  • 剪绳子

    题目描述 给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为...

  • 剪绳子

    题目给你一根长度为n绳子,请把绳子剪成m段(m、n都是整数,n>1并且m>1)。每段的绳子的长度记为k[0]、k[...

  • 剪绳子

    题目描述 给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为...

  • 剪绳子

    给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为...

网友评论

      本文标题:剪绳子

      本文链接:https://www.haomeiwen.com/subject/pjokqltx.html