三个数乘积
程序员文章站
2024-03-16 17:36:40
...
给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)
package a;
import java.util.*;
public class Main {
public static void main(String [] args) {
Scanner input=new Scanner(System.in);
long max=0;
long max1=0;
long max2=0;
long max3=0;
long min1=0;
long min2=0;
long[] a=new long[input.nextInt()];
if(a.length>=3)
{
for(int i=0;i<a.length;i++)
{
a[i]=input.nextLong();
if(max1<a[i])
{
max3=max2;
max2=max1;
max1=a[i];
}
else if(max2<a[i])
{
max3=max2;
max2=a[i];
}
else if(max3<a[i])
max3=a[i];
if(min1>a[i])
{
min2=min1;
min1=a[i];
}
else if(min2>a[i])
min2=a[i];
}
max=Math.max(max1*max2*max3,max1*min1*min2);
System.out.println(max);
}
input.close();
}
}
上一篇: Pyqt制作B站视频下载软件