LeetCode – 628. Maximum Product of Three Numbers


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.
public class Solution {
    public int maximumProduct(int[] nums) {
        int max = Integer.MIN_VALUE;
        int max2 = Integer.MIN_VALUE;
        int max3 = Integer.MIN_VALUE;
        int min = Integer.MAX_VALUE;
        int min2 = Integer.MAX_VALUE;
        for(int i=0;i<nums.length;i++){
            if(nums[i]>max){
                max3 = max2;
                max2 = max;
                max = nums[i];
            }
            else if(nums[i]>max2){
                max3 = max2;
                max2 = nums[i];
            }
            else if(nums[i]>max3){
                max3 = nums[i];
            }
            if(nums[i]<min){
                min2 = min;
                min = nums[i];
            }
            else if(nums[i]<min2){
                min2 = nums[i];
            }
        }
        return Math.max(max * max2 * max3,max * min * min2);
    }
}

This site Original article All followed" Attribution—NonCommercial—ShareAlike 4.0 (CC BY-NC-SA 4.0) ”。 Please keep the following marks for sharing and interpretation:

Original author: Jake Tao Source: 「LeetCode – 628. Maximum Product of Three Numbers」

Praise 133
0 0 133

Further reading

Post a reply

Log in can only be commented on later
Share this page
Back to top