最大乘積

給定一個無序數組,包含正數、負數和0,要求從中找出3個數的乘積,使得乘積最大,要求時間複雜度:O(n),空間複雜度:O(1)

輸入描述:

無序整數數組A[n]

 

輸出描述:

滿足條件的最大乘積

示例1

輸入

3 4 1 2

輸出

24

 

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        int leng = 0;
        leng = input.nextInt();
        int[] a = new int[leng];
        for(int i = 0;i < a.length;i++){
            a[i] = input.nextInt();
        }
        Arrays.sort(a);
        long max1= a[a.length-1] ,max2=a[a.length-2];
        long max3 =a[a.length-3],min2 = a[0],min1=a[1];
   
        System.out.println(Math.max(max1*max2*max3,max1*min1*min2));
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章