题目

给你一根长度为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.

解题思想

动态规划(具体解法及思路见代码注释)

class Solution():
def maxProfuctAfterCutting(self,length):
if length < 2:
return 0
if length == 2:
return 1
if length == 3:
return 2
products = [0,1,2,3]
for i in range(4,length+1):
max = 0
for j in range(1,i//2+1):
# 思路:每次求解值时将其他小于需要求解的长度是都列出来放在一个数组里
# 如:求长度为5,最优解数组里必须得有长度为1,2,3,4的最优解值
# 注:此处使用列表保存最优解数组是为了性能优化,虽然递归求解也能解出,但会造成大量重复执行
temp = products[j] * products[i-j]
if temp>max:
max = temp
products.append(max)
return products[length]

最新文章

  1. ACM-ICPC如何起步
  2. paper 129 : 比较好的开源人脸识别软件
  3. Java classpath 如何自动添加web-content /lib下的jar包
  4. Core Java - 流(Stream) - 字节流和字符流(一)
  5. 看部电影,透透彻彻理解IoC(你没有理由再迷惑!)
  6. sso笔记
  7. stringstream 与空格 (大家讨论一下代码结果的原因)
  8. Ubuntu下给Sublime Text 3添加用python3运行文件
  9. html字符实体对照表
  10. SICP练习1.6-1.8
  11. js的解析顺序 作用域 严格模式
  12. C#中抽象类和接口的区别3
  13. Kali Linux 发布 2019.1 版
  14. Tea for Mac(mac笔记软件)中文版
  15. python: 多态与虚函数;
  16. POJ2387 Til the Cows Come Home【Kruscal】
  17. 2019/4/8 wen text
  18. Pycharm中.py文件头信息配置
  19. YII2 设置session过期时间
  20. pos提交提交数据时碰到Django csrf

热门文章

  1. 2、kubeadm快速部署kubernetes(v1.15.0)集群190623
  2. js抽奖系统
  3. Codeforces Round #363 (Div. 2) C
  4. 了解Unix进程(3)
  5. docker~aspnetcore2.0镜像安装软件的加速器
  6. 《从0到1学习Flink》—— Flink 写入数据到 Kafka
  7. sqlserver2008执行200M以上的大脚本文件,打开脚本总是报“未能完成操作,存储空间不足”
  8. ElasticSearch入门-增删改查(java api)
  9. 图片单独上传 (word)
  10. 关于小程序后台post不到数据的问题