力扣628题.三个数的最大乘积 (21.3.10)
力扣628题.三个数的最大乘积
题目描述:
给出一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
题目涉及内容:数组、数学
思路:
可以使用列表自带的排序 sort()函数来将数组里面的数值进行排序,之后考虑情况
(ps:默认是升序排序)
- 全是正数或者全是负数,那么此时就是最后三个最大,即arr[-1]×arr[-2]×arr[-3]
- 若是存在正负数均有的情况
- 若是一负多正,此时和第一种情况一样
- 若是二负多正,此时只有在数组元素个数只有3和4时是arr[0]×arr[1]×arr[-1];否则也是和第一种情况相同
综上所述,最大值必然是arr[-1]×arr[-2]×arr[-3]和arr[0]×arr[1]×arr[-1]中相对较大的那个
提交结果:

完整代码:
nums=[1,2,3,4]
nums.sort()
a=nums[-1]*nums[-2]*nums[-3]
b=nums[0]*nums[1]*nums[-1]
c=max(a,b)
print(c)

浙公网安备 33010602011771号