【python公司校招题】

【python拼多多】最大乘积?

2019-08-11  本文已影响0人  阿牛02

题目:给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)

输入描述:

第一行是数组大小n,第二行是无序整数数组A[n]

输出描述:

满足条件的最大乘积

示例1

输入

4

3 4 1 2

输出

24

code:

# 思路 两种情况,一是两个最小负数加一个最大正数,二是三个最大正数

n = input()

Alist = list(map(int, input().split()))

Alist.sort()

res1 = Alist[-1]*Alist[-2]*Alist[-3]

res2 = Alist[0]*Alist[1]*Alist[-1]

print(max(res1, res2))

上一篇 下一篇

猜你喜欢

热点阅读