1. 程式人生 > >628. 三個數的最大乘積

628. 三個數的最大乘積

628.三個數的最大乘積

給定一個整型陣列,在陣列中找出由三個陣列成的最大乘積,並輸出這個乘積。

示例 1:

輸入: [1,2,3] 輸出: 6

示例 2:

輸入: [1,2,3,4] 輸出: 24

注意:

  1. 給定的整型陣列長度範圍是[3,104],陣列中所有的元素範圍是[-1000, 1000]。
  2. 輸入的陣列中任意三個數的乘積不會超出32位有符號整數的範圍。

分析: 實際上,最大乘積不是最大的三個數之積就是最小三個數之積(兩負一正),比較後求最大值即可。

class Solution {
public:
    int maximumProduct(vector<int>& nums)
{ sort(nums.begin(),nums.end()); int n = nums.size(); int a = nums[n-1]*nums[n-2]*nums[n-3]; int b = nums[0]*nums[1]*nums[n-1]; return a>b?a:b; } };