LeetCode:628. 三个数的最大乘积

class Solution {
     
public:
    int maximumProduct(vector<int>& nums) {
     
        sort(nums.begin(),nums.end());
        //只需要求出最大的三个数以及最小的两个数

        if(nums.size()>=5)
        {
     
            int max1=nums[nums.size()-1];
            int max2=nums[nums.size()-2];
            int max3=nums[nums.size()-3];
            int min1=nums[0];
            int min2=nums[1];
            return max(max1*max2*max3,max1*min1*min2);
        }

        reverse(nums.begin(),nums.end());
        return nums[0]*nums[1]*nums[2]>(nums[0]*nums[nums.size()-1]*nums[nums.size()-2])?nums[0]*nums[1]*nums[2]:(nums[0]*nums[nums.size()-1]*nums[nums.size()-2]);
    }
};

你可能感兴趣的:(LeetCode)