题目描述
给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
示例
输入: [1,2,3]
输出: 6
输入: [1,2,3,4]
输出: 24
解答
列表里的数有三种情况:
1.全为负数,包括0
2.全为正数,包括0
3.正负都有,包括0
将数组排序,最大的乘积有两种情况:
1.两个最小负数(绝对值最大)+最大正数
2.三个最大正数
class Solution(object):
def maximumProduct(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
nums.sort()
mul_1 = nums[0]*nums[1]*nums[-1]
mul_2 = nums[-1]*nums[-2]*nums[-3]
if mul_1 >= mul_2:
return mul_1
else:
return mul_2