力扣628题.三个数的最大乘积 (21.3.10)

力扣628题.三个数的最大乘积

题目描述:

给出一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。

题目涉及内容:数组数学

思路

可以使用列表自带的排序 sort()函数来将数组里面的数值进行排序,之后考虑情况

(ps:默认是升序排序)

  1. 全是正数或者全是负数,那么此时就是最后三个最大,即arr[-1]×arr[-2]×arr[-3]
  2. 若是存在正负数均有的情况
    1. 若是一负多正,此时和第一种情况一样
    2. 若是二负多正,此时只有在数组元素个数只有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)

posted @ 2021-03-10 11:41  乖张❤  阅读(77)  评论(0)    收藏  举报