1. 程式人生 > >[LeetCode] Maximum Product of Three Numbers

[LeetCode] Maximum Product of Three Numbers

clas style find leet 數組元素 cat 兩個 bit bsp

Given an integer array, find three numbers whose product is maximum and output the maximum product.

Example 1:

Input: [1,2,3]
Output: 6

Example 2:

Input: [1,2,3,4]
Output: 24

Note:

  1. The length of the given array will be in range [3,104] and all elements are in the range [-1000, 1000].
  2. Multiplication of any three numbers in the input won‘t exceed the range of 32-bit signed integer.

將數組按照逆序排序後,如果數組元素都是整數,則結果為前三個數的積,如果數組中存在負數,則判斷數組前三個數之積與數字第一個數(最大正數)與數組最後兩個負數之積。

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

[LeetCode] Maximum Product of Three Numbers