美文网首页leetcode和算法----日更
leetcode 628 三个数的最大乘积

leetcode 628 三个数的最大乘积

作者: Arsenal4ever | 来源:发表于2020-02-14 21:49 被阅读0次

第一种方法,我直接用的爆破,超时了......

class Solution(object):
    def maximumProduct(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        answer = float('-inf')
        for i in range(len(nums)):
            for j in range(i+1, len(nums)):
                for k in range(j+1, len(nums)):
                    answer = max(answer, nums[i] * nums[j] * nums[k])
        return answer

第二种方法,排序,三个数的最大乘积,要么出现在最后三个位置,要么就是两个最小的负数(第一个和第二个)和一个最大的正数(最后一个)。

class Solution(object):
    def maximumProduct(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        nums.sort()
        return max(nums[-1] * nums[-2] * nums[-3], nums[0] * nums[1] * nums[-1])

相关文章

网友评论

    本文标题:leetcode 628 三个数的最大乘积

    本文链接:https://www.haomeiwen.com/subject/ngcsfhtx.html