算法设计作业9
来源:互联网 发布:霍建华演技知乎 编辑:程序博客网 时间:2024/05/21 16:23
第九周作业:
343. Integer Break
解题思路:
343. Integer Break
Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum product you can get.
For example, given n = 2, return 1 (2 = 1 + 1); given n = 10, return 36 (10 = 3 + 3 + 4).
Note: You may assume that n is not less than 2 and not larger than 58.
思路:这道题感觉比起在代码层面上,找出它的数学规律更有助于解题。曾经接触过一类数学题,题目是周长给定的情况下,如何保证面积最大,我们知道是在边长最接近的时候面积最大,所以这道题也一定有如此规律。
根据规律,当因子越接近自然底数时,乘积越大,得知≈2.718. 取每个因子为3,但是因此不应出现1,因为出现了3*1<2*2;所以当最后的因子拆分到剩下4的时候,我们应该将4拆成2*2.或者直接就当做4(4=2*2)。
代码如下:
class Solution {public:int integerBreak(int n) {int result = 1;if (n == 2)result = 1;else if (n == 3)result = 2;else {while (n > 4) {result *= 3;n -= 3;}result *= n;}return result;}};
0 0
- 算法设计作业9
- 算法设计作业;贪心;
- 算法设计作业1
- 算法设计作业2
- 算法设计作业3
- 算法设计作业4
- 算法设计作业5
- 算法设计作业6
- 算法设计作业7
- 算法设计作业8
- 算法设计作业10
- 算法设计作业11
- 算法设计作业12
- 算法设计作业13
- 算法设计作业14
- 算法设计作业15
- 算法设计作业16
- 算法设计作业17
- Linux学习篇第二章之~unit11 系统恢复技术
- angular-1.2.32路由控制写法与《SPA设计与架构》写法的部分区别
- win7平台下MinGW编译openssl
- 一张图看明白数据加密的过程
- Java反射机制
- 算法设计作业9
- AngularJS1.x入门·常用指令以及自定义指令
- 常用开源GIS项目
- windows下进程通信的十种方法(demo见我上传的资源)
- HDU-5240
- bootstrap模态框弹出和隐藏,动态改变中间内容
- BZOJ3160: 万径人踪灭
- python:File "<string>", line 1, in <module>
- iOS7中的多任务II