第一种方法,我直接用的爆破,超时了......
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])
网友评论