Python算法- 剪绳子
#问题
剑指 offer 有这样一道编程题
给你一根长度为 n 的绳子,请把绳子剪成整数长的 m 段(m、n 都是整数,n>1 并且 m>1,m<=n),每段绳子的长度记为 k [1],…,k [m]。请问 k [1] x…xk [m] 可能的最大乘积是多少?例如,当绳子的长度是 8 时,我们把它剪成长度分别为 2、3、3 的三段,此时得到的最大乘积是 18。
(2 <= n <= 60)
分析
全排列形式,比较取积之大也能得到结果,但计算显然非最优解
假定各因数之和确定为 n,何种情况下各因子乘积最大?(求幂)
进一步简化,任意数可分解为奇偶之和,即 2 或 3
假定 n=6,分解比较结果
222 < 3*3
结论:排除特殊情况,3 分解优先,2 次之
代码
python 实现
def cutRope(number):maxN=1if 0<number<4:return number-1while number>4:number -=3maxN *=3return number*maxN
小结
实质是与剪无关,反而是求正数最大积
Python算法- 剪绳子相关推荐
- 【算法】【动态规划篇】第5节:剪绳子问题
本期任务:介绍算法中关于动态规划思想的几个经典问题 [算法][动态规划篇]第1节:0-1背包问题 [算法][动态规划篇]第2节:数字矩阵问题 [算法][动态规划篇]第3节:数字三角形问题 [算法][动 ...
- 剪绳子python_Python剪绳子如何实现 Python剪绳子实现代码
本篇文章小编给大家分享一下Python剪绳子实现代码,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 题目:剪绳子 给你一根长度为n的绳子,请把绳子剪成m段(m,n都是整数, ...
- 剪绳子 算法_[校招-算法题]动态规划
动态规划(Dynamic Programming)是面试中非常常见的一种算法,可以解决很多复杂问题. 核心算法: 定义状态:dp[i],一个数组,具体几维根据问题定. 状态转移方程:dp[i] = b ...
- leetcode算法题--剪绳子 II
原题链接:https://leetcode-cn.com/problems/jian-sheng-zi-ii-lcof/ 相关题目:剪绳子 1.循环求余法 //(x ^ a) % p; long re ...
- 剪绳子 算法_算法-14.1.剪绳子
给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m.n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m-1] .请问 k[0]k[1]...*k ...
- 剑指Offer算法笔记(Java)剪绳子
11.剪绳子 描述 给你一根长度为 n 的绳子,请把绳子剪成整数长的 m 段( m . n 都是整数, n > 1 并且 m > 1 , m <= n ),每段绳子的长度记为 k[1 ...
- 14- I、 剪绳子(cuttingRope)
14- I. 剪绳子(cuttingRope) 1. python class Solution:def cuttingRope(self, n: int) -> int:if not n:re ...
- 动态规划-剪绳子问题
题目 给你一根长度为n的绳子,请把绳子剪成整数长的m段(m.n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],-,k[m-1].请问k[0]×k[1]×-×k[m]可能 ...
- 【LeetCode】【剑指offer】【剪绳子(二)】
剑指 Offer 14- II. 剪绳子 II 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m.n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]... ...
最新文章
- CVPR 2021接收结果出炉!录用1663篇,接受率显著提升,你的论文中了吗?(附论文下载)...
- DedeCms织梦发布文章时输入Tag标签逗号自动变成英文标点的方法
- ubuntu+终端不能启动mysql数据库_强制重启Ubuntu服务器后Mysql无法启动
- 使用Recast.AI创建具有人工智能的聊天机器人
- Vim/GVim格式化xml文件
- LeetCode 1005. K 次取反后最大化的数组和
- html下拉嵌套只读,html组件不可输入(只读)同时任何组件都有效
- ps自定义形状工具_ps中借助形状工具绘制卡通图
- 架构设计工作笔记004---架构中常见的概念积累--随时更新
- 用‘slay’干掉某个用户的所有进程
- 基于 MVP+RxJava2+Retrofit2 的应用—熊猫眼
- MySQL-第十四篇事务管理
- asp.net门诊收费管理系统
- DOSBox的安装及使用
- orcad元件封装制作
- 如何关闭Windows自动更新
- 物联网的新危机!即将到期的SSL证书可能会影响……
- 华为应用市场AGC研习社游戏课程上新,助力游戏开发者高效分发获量
- 小米手机5s Plus超简单刷成开发版启用Root超级权限的经验
- oracle数据类型和Java类型之间的映射关系