1. 首页
  2. 数据库
  3. 其它
  4. (剑指offer)面试题14 I. 剪绳子

(剑指offer)面试题14 I. 剪绳子

上传者: 2021-01-16 18:32:44上传 PDF文件 30.99KB 热度 17次
题目 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m] 。请问 k[0]k[1]...*k[m] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。 思路 动态规划法:定义解的代价dp[i]为长度为i的绳子对应的最大乘积 最优解的结构为:dp[i] = max(i-j,dp[i-j] ) * max(j,dp[j]) 数学法:根据数学定理,当所有绳段长度相等时,乘积最大。并且最优的绳段长度为 3 。 代码 /** * 动态规划法
下载地址
用户评论