Integer Break

仔细观察规律就可以发现能获得最大乘积需要拆分的部分数是四个数四个数增大的,且边缘两个数是n个拆分和n-1个拆分一样大,所以这里根据模3就可以写出规律了,另外小于4的数属于不拆分比拆分了更大,但是题目要求必须拆分,所以这里对前三个数做特殊处理

class Solution(object):
    def integerBreak(self, n):
        """
        :type n: int
        :rtype: int
        """
        if n <= 2:
            return 1
        elif n == 3:
            return 2
        elif n % 3 == 0:
            return 3 ** (n / 3)
        elif n % 3 == 1:
            return (3 ** (n / 3 - 1)) * 4
        else:
            return (3 ** (n / 3)) * 2

results matching ""

    No results matching ""