给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
示例 1:
输入: [1,2,3]
输出: 6示例 2:
输入: [1,2,3,4]
输出: 24注意:
执行用时 :68 ms, 在所有 cpp 提交中击败了75.20%的用户
内存消耗 :10.8 MB, 在所有 cpp 提交中击败了86.46%的用户
int maximumProduct(vector<int>& nums) {
if (nums.size() == 3) return nums[0] * nums[1] * nums[2];
sort(nums.begin(), nums.end());
int result=0,max = nums[nums.size() - 1], lastMax = nums[nums.size() - 2];
int secondMin = nums[1];
if (secondMin < 0) {
int temp = nums[0] * secondMin * max;
result = max * lastMax * nums[nums.size() - 3];
result = result > temp ? result : temp;
}
else
{
result = max * lastMax * nums[nums.size() - 3];
}
return result;
}