Leetcode 628 Maximum Product of Three Numbers
#include <vector>
#include <algorithm>
#include <windef.h>
using namespace std;
class Solution {
public:
int maximumProduct(vector<int>& nums) {
int size = nums.size();
sort(nums.begin(), nums.end());
//排序之后选3个数相乘有这样几种情况:
//后三个数相乘,前三个数相乘(两负一正),前两个和后一个,前一个和后两个(这个没有必要的样子),因为绝对值大的数在两头
int maxProduct = nums[size - 1] * nums[size - 2] * nums[size - 3];//后三个
maxProduct = max(maxProduct, nums[size - 1] * nums[0] * nums[1]);//前二后一
maxProduct = max(maxProduct, nums[2] * nums[0] * nums[1]);//前三个
return maxProduct;
}
};