给你一个整型数组 nums
,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
示例 1:
输入:nums = [1,2,3]
输出:6
示例 2:
输入:nums = [1,2,3,4]
输出:24
示例 3:
输入:nums = [-1,-2,-3]
输出:-6
如果是三个数,直接输出乘积
如果大于三个数,则最大值有两种可能
①三个最大的正数相乘
②两个最小的负数和最大的正数相乘
## C++
class Solution {
public:
int maximumProduct(vector<int>& nums) {
if(nums.size()<3) return false;
else if(nums.size()==3) return nums[0]*nums[1]*nums[2];
else
{
sort(nums.begin(), nums.end());
return max(nums[0]*nums[1]*nums[nums.size()-1],
nums[nums.size()-1]*nums[nums.size()-2]*nums[nums.size()-3]);
}
}
};
'''Python'''
class Solution(object):
def maximumProduct(self, nums):
if len(nums) < 3:
return flase;
elif len(nums) == 3:
return nums[0]*nums[1]*nums[2]
else:
nums.sort()
return max(nums[-1]*nums[-2]*nums[-3],nums[0]*nums[1]*nums[-1])