LeetCode:628. 三个数的最大乘积
排序即可, 因为数组元素可能有负数, 所以需要考虑一种情况,两个最小的负数 * 最大的正数。
AC Code
class Solution {
public int maximumProduct(int[] nums) {
Arrays.sort(nums);
int len = nums.length;
int a = 1, b = 1;
for(int i = len - 1; i >= 0 && i >= len - 3; i--) a *= nums[i];
for(int i = 0; i < len && i < 2; i++) b *= nums[i];
return Math.max(a, b * nums[len - 1]);
}
}