题解 | #最大乘积#
最大乘积
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,没错的话考虑几个极端情况就可以了