题解 | #最大乘积#

最大乘积

http://www.nowcoder.com/practice/5f29c72b1ae14d92b9c3fa03a037ac5f

对数组进行排序;

  1. 若均为正数或均为负数或负数个数<2,则最大值应为 data[-1] * data[-2] * data[-3]
  2. 若负数数量为2 则最大值可能为 data[0] * data[1] * data[-1] 最大值为二者之一
import sys
n = int(sys.stdin.readline().strip())
if n < 3:
    print(0)
    exit()
data = list(map(int, sys.stdin.readline().strip().split()))
data.sort()
print(max(data[-1] * data[-2] * data[-3], data[-1]*data[0]*data[1]))
全部评论
空间复杂度要求O(1),你这个铁定不符合
1 回复
分享
发布于 2022-03-29 08:28

相关推荐

6 收藏 评论
分享
牛客网
牛客企业服务