628题
自己的思路:
本来想到的重点是排序的最快方式,看了题解重点在正负数上
实现代码
参考官方题解
首先将数组排序,排序后最大的三个数即为最大乘积;如果有负数的情况下,有可能两个最小负数和最大正数的乘积最大
class Solution {
public int maximumProduct(int[] nums) {
Arrays.sort(nums);
int n=nums.length;
return Math.max(nums[n-2]*nums[n-1]*nums[n-3],nums[0]+nums[1]+nums[n-1]);
}
}
代码