最大乘积

最大乘积

题目描述

给定一个无序数组,包含正数、负数和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再乘

posted @ 2020-03-23 17:20  别再闹了  阅读(79)  评论(0)    收藏  举报