随机一题给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
示例 1:
输入: [1,2,3]
输出: 6
示例 2:
输入: [1,2,3,4]
输出: 24
思路:排个序,然后考虑到可能有负数的情况,但仔细一想,如果有负数的话也只存在两种情况,自己可以试着测一测。
class Solution {
public:
int maximumProduct(vector<int>& nums) {
int nCount = nums.size();
sort(nums.begin(),nums.end());
int nLeft = nums[0]*nums[1]*nums[nCount-1];
int nRight = nums[nCount-1]*nums[nCount-2]*nums[nCount-3];
return nLeft > nRight ? nLeft : nRight;
}
};