其他分享
首页 > 其他分享> > LeetCode #628. Maximum Product of Three Numbers

LeetCode #628. Maximum Product of Three Numbers

作者:互联网

题目

628. Maximum Product of Three Numbers


解题方法

遍历数组找到最大值max、次大值max2、第三大值max3、最小值min、次小值min2,然后返回maxmax2max3和minmin2max的最大值即可。
时间复杂度:O(n)
空间复杂度:O(1)


代码

class Solution:
    def maximumProduct(self, nums: List[int]) -> int:
        max1, max2, max3, min1, min2 = float('-Inf'), float('-Inf'), float('-Inf'), float('Inf'), float('Inf')
        for num in nums:
            if num > max1:
                max3, max2, max1 = max2, max1, num
            elif num > max2:
                max3, max2 = max2, num
            elif num > max3:
                max3 = num
            if num < min1:
                min2, min1 = min1, num
            elif num < min2:
                min2 = num
        return max(max1 * max2 * max3, min1 * min2 * max1)

标签:Product,max1,max2,max3,628,Three,num,min1,min2
来源: https://www.cnblogs.com/RatsCommander/p/13919916.html