leetcode628. 三个数的最大乘积

随机一题给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。

示例 1:
输入: [1,2,3]
输出: 6

示例 2:
输入: [1,2,3,4]
输出: 24

思路:排个序,然后考虑到可能有负数的情况,但仔细一想,如果有负数的话也只存在两种情况,自己可以试着测一测。

class Solution {
public:
    int maximumProduct(vector& 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;
    }
};

你可能感兴趣的:(Leetcode数组)