最大乘积
最大乘积
题目描述
给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)
输入描述:
输入共2行,第一行包括一个整数n,表示数组长度
第二行为n个以空格隔开的整数,分别为A1,A2, … ,An
输出描述:
满足条件的最大乘积
示例1
输入
[复制](javascript:void(0)😉
4
3 4 1 2
输出
[复制](javascript:void(0)😉
24
这道题做法还是最典型的,选出前i个最大值/最小值的问题。我们选出最大的3个正数和最小的2个负数,然后计算乘积,看看哪个大。这里要注意最后乘的时候两个int相乘是有可能溢出的,所以乘的时候应该换成long再乘

浙公网安备 33010602011771号