题解 | #最大乘积#
最大乘积
https://www.nowcoder.com/practice/5f29c72b1ae14d92b9c3fa03a037ac5f
import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int length=in.nextInt();
long[] arrays=new long[length];
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
for(int i=0;i<length;i++){
arrays[i]= in.nextLong();
}
}
Arrays.sort(arrays);
long a=0;
if(arrays[0]*arrays[1]>=0){
a=Math.max(arrays[0]*arrays[1],arrays[length-2]*arrays[length-3]);
}else{
a=arrays[length-2]*arrays[length-3];
}
if(a*arrays[length-1]<0){
System.out.println(arrays[length-2]*arrays[length-3]*arrays[length-1]);
}else{
System.out.println(a*arrays[length-1]);
}
// System.out.println(a*arrays[length-1]);
}
}
这题主要是数组的定义一开始错了,用的是int,没错的话考虑几个极端情况就可以了
阿里云成长空间 786人发布