题目

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

转载于:https://www.cnblogs.com/tianqizhi/p/9642877.html

python剑指offer剪绳子相关推荐

  1. LEETCODE | PYTHON | 剑指 Offer 58 - Ⅱ | 左旋转字符串

    LEETCODE | PYTHON | 剑指 Offer 58 - Ⅱ | 左旋转字符串 1. 题目 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部.请定义一个函数实现字符串左旋转操作 ...

  2. python连续质数计算_GitHub - xxqfft/AlgorithmsByPython: 算法/数据结构/Python/剑指offer/机器学习/leetcode...

    尝试用Python实现一些简单的算法和数据结构 之前的算法和数据结构基本都是用Swift写的,现在尝试用Python实现一些简单的算法和数据结构. update 20160704 准备加入<剑指 ...

  3. python 剑指offer 学习之路(二)

    剑指offer 学习之路 合并两个排序的链表 树的子结构 顺时针打印矩阵 包含min函数的栈 从上往下打印二叉树 二叉搜索树的后序遍历序列 二叉树中和为某一值的路径 复杂链表的复制 数组中出现次数超过 ...

  4. python剑指offer替换空格_02_替换空格【python】

    1.题目描述 请实现一个函数,将一个字符串中的每个空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 2.思 ...

  5. python剑指offer替换空格_迷人的算法-剑指offer面试题5:替换空格

    题目:请实现一个函数,把字符串中的每个空格替换成"%20". 例如,输入"We are happy.",则输出"We%20are%20happy.&q ...

  6. python剑指offer面试题_剑指offer面试题Q10 斐波那契数列 python解法

    Q10.斐波那契数列 题目描述 写一个函数,输入n,求斐波那契数列的第n项. 解题思路 思路一 递归 递归很简单但是并不能AC python实现代码 class Solution: def Fibon ...

  7. python剑指offer替换空格_《剑指offer》2-替换空格【Java+Python】

    替换空格 1. 题目描述 请实现一个函数,将一个字符串中的空格替换成"%20". 2. 示例 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%2 ...

  8. python剑指offer 包含min函数的栈

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). # -*- coding:utf-8 -*- class Solution:def _ ...

  9. Python剑指offer:和为s的连续整数序列

    ''' 输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数). 例如,输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以打印三个连续 序列,1-5,4-6,7-8 '''cl ...

最新文章

  1. 在ASP.NET 中实现单点登录
  2. IP管理提高业务网络安全性的3种方式——Vecloud
  3. 用linux运行sublime,在Deepin Linux上用Sublime Text3配置GoLang开发环境
  4. Linux16.04配置OpenCV3.2
  5. mysql left join 查询_MySQL联表查询基本操作之left-join常见的坑
  6. IBM并购网络视频会议商WebDialogs 加入Lotus Sametime
  7. 360云计算|2019年度精选文章
  8. Android 代码混淆(一)
  9. spring 常用注解汇总
  10. Spring Cloud 2020年路线图发布
  11. 激光雕刻机DIY之二:GRBL的下载与参数配置
  12. Java类加载机制与Tomcat类加载器架构
  13. 脚本之家去广告JS插件
  14. cesium实现飞线特效
  15. 共享手机 馅饼还是陷阱
  16. .NET 中的 Encoding 编码
  17. 华为手机关闭云空间之类的通知的方法
  18. 2012年高手“云”集,作为站长该如何选择(转)
  19. ESP8266通过WIFI获取IP定位信息
  20. RAD Studio

热门文章

  1. php和全栈,php与h5全栈工程师是什么意思
  2. wordpress 字符串翻译日期_WordPress强大搜索功能如何实现?安装Ivory Search插件
  3. 江苏计算机二级vb,江苏省计算机等级考试二级vb.ppt
  4. php 环境优化,[笔记] 使用 opcache 优化生产环境 PHP
  5. oracle授权v$lock,Oracle八大性能视图之v$lock
  6. python认证考试mac_Mac OS 平台使用 Python 和 Docker 创建测试用 Https Server
  7. 黑莓 os6 html5,黑莓OS 6内置浏览器HTML5性能超越其他平台
  8. linux chroot_Linux中chroot命令的实用指南
  9. 在字符串中标红_在C ++中标记字符串
  10. python 字符串 变量_Python检查变量是字符串