LeetCode|Integer Break
2016-04-21 07:50
337 查看
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.
Hint:
There is a simple O(n) solution to this problem.
You may check the breaking results of n ranging from 7 to 10 to discover the regularities.
class Solution { public: int integerBreak(int n) { if(n == 2) return 1; if(n == 3) return 2; int mod = n % 3; if(mod == 0) return pow(3, n/3); else if(mod == 1) return pow(3, n/3 - 1)*4; else /*if(mod == 2)*/ return pow(3, n/3)*2; } };
后面有空再补充解析
相关文章推荐
- 【CodeChef-LYRC】Music & Lyrics【AC自动机】
- 团队开发——个人工作总结03
- NYOJ-517-最小公倍数,大数啊~~~
- [HDU 5521] 2015ACM/ICPC亚洲区沈阳站 Meeting 最短路
- 使用Yeoman搭建 AngularJS 应用 (6) —— 让我们搭建一个网页应用
- 56. Merge Intervals
- 如何在 CentOS 7 中添加新磁盘而不用重启系统
- 如何在 CentOS 7 中添加新磁盘而不用重启系统
- 个人工作总结03
- 我是一个线程(修订版)
- Openstack学习笔记(十四)-Horizon学习笔记(四)
- [bzoj1799]同类分布 [bzoj4521]手机号码
- HARK学习(八)--LoadSourceLocation
- 梦见教训学生的周公解梦
- salesforce 零基础学习(十七)Trigger用法
- vi/vim常用命令
- 修改后的神经网络
- AFN 获取数据,数据解析:JSON 介绍
- Mini-Shell without pipes
- 团队项目个人工作总结(4月21日)