public class Solution {
/**
* 最大乘积
* @param A int整型一维数组
* @return long长整型
*/
public long solve (int[] A) {
// write code here
//1.排序后 可能 全 负 最大 的 三个 ,正数也一样,
//如果有负有正,那么就是最小的2个负数和一个正数,考虑只有一个负数情况,
//如果只有一个负数 ,都是正数,那么选非负数的3个最大正数,只有3个元素,那么没得选了,三个元素
//所以 全正 全负 选最后的三个数
// 不是 那就是选两个负数 一个最大的正数
if(A == null ||A.length <3){
return 0;
}
Arrays.sort(A);
long reuslt1 = (long)A[0] *A[1] * A[A.length - 1] ;
long result2 = (long)A[A.length - 1] *A[A.length - 2] *A[A.length - 3] ;
return Math.max(reuslt1, result2);
}
}