19.三个数的最大乘机
题目描述
给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)。
输入
[3,4,1,2]
返回值
24
分析
1.直接计算即可,先对数组排序
2.然后计算比较即可
代码实现
import java.util.*;
public class Solution {
/**
* 最大乘积
* @param A int整型一维数组
* @return long长整型
*/
public long solve(int[] A) {
Arrays.sort(A);
return Math.max((long) A[A.length - 1] * A[A.length-2] * A[A.length-3],
(long) A[0]*A[1]*A[A.length-1]);
}
}