题解 | #最大乘积#

最大乘积

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,没错的话考虑几个极端情况就可以了

全部评论

相关推荐

草稿猫编程:查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务