题目:给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
可以说是很傻很傻很傻了!!!
这道题我做了一天!!!
先是想用堆排序做!!!
然后发现正负有很多种情况不知道怎么判断!!!
越来越暴躁 越来越乱!!!
其实最开始应该先列出各种情况,然后分析一下
就会知道最大乘积的情况只有两种:min1min2max1, max1max2max3
按照这个思路就很简单了╮(╯▽╰)╭
from typing import List
class Solution:
def maximumProduct(self, nums: List[int]) -> int:
max1 = -2147483648
max2 = -2147483648
max3 = -2147483648
min1 = 2147483647
min2 = 2147483647
for num in nums:
if num >= max1:
max3 = max2
max2 = max1
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(min1*min2*max1, max1*max2*max3)