题目:求数组中三个数的最大乘积
例如:
input:1,2,3 output:6
input:2,3,1,4 output:24
思路:由于输出三个数的最大乘积,三个数的组合只有三种情况:三个正数,三个负数,一个正数两个负数,所以只需要比较后三个数的乘积和前两个数与最后一个数的乘积大小。
C++代码:
class Solution {
public:
int maximumProduct(vector<int>& nums) {
long long sum = 1;
sort(nums.begin(), nums.end());//对nums进行排序
int m = nums.size();
return max(nums[m - 1] * nums[m - 2] * nums[m - 3], nums[m - 1] * nums[0] * nums[1]);
}
};