题解 | 最大乘积
最大乘积
https://www.nowcoder.com/practice/5f29c72b1ae14d92b9c3fa03a037ac5f
import java.util.Scanner;
import java.lang.Integer;
import java.util.ArrayList;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int length=in.nextInt();
//消耗换行符
in.nextLine();
long max1=Long.MIN_VALUE;
long max2=Long.MIN_VALUE;
long max3=Long.MIN_VALUE;
long min2=Long.MAX_VALUE;
long min1=Long.MAX_VALUE;
int[] arr=new int[length];
// 注意 hasNext 和 hasNextLine 的区别
for(int i=0;i<length;i++){
long a=in.nextLong();
//更新最大值
if(a>max1){
long temp=max1;
long temp2=max2;
max1=a;
max2=temp;
max3=temp2;
}else if(a>max2){
long temp=max2;
max2=a;
max3=temp;
}else if(a>max3){
max3=a;
}
//更新最小值
if(a<min1){
long temp=min1;
min1=a;
min2=temp;
}else if(a<min2){
min2=a;
}
}
long r1=max1*max2*max3;
long r2=max1*min1*min2;
System.out.println(Math.max(r1,r2));
}
}
查看8道真题和解析