您的位置:首页 > 编程语言 > Python开发

leetcode之Integer Break

2016-06-09 21:17 537 查看
这题就是把整数拆开一系列的数字之和,使之乘积最大。从题目的提示信息来看发现了规律,就是7-10,严格来讲是8到10,因为我看7反而是个特殊情况。

class Solution(object):
def integerBreak(self, n):
"""
:type n: int
:rtype: int
"""
if n == 2:
return 1
if n == 3:
return 2
if n == 5:
return 6
a = n / 6
b = n % 6
if b == 0:
return 3 ** (2 * a)
if b == 1:
return 12 * ( 3 ** (2 * (a - 1)))
if b == 2:
return 2 * (3 ** (2 * a))
if b == 3:
return 3 * (3 ** (2 * a))
if b == 4:
return 4 * (3 ** (2 * a))
if b == 5:
return 6 * (3 ** (2 * a))
基本都是3*3再乘以后面的数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息