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

LeetCode 628. 三個數的最大乘積

題目描述

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

示例1

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

示例2

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

Java Code

class Solution {
    public  int maximumProduct(int[] nums) {
        int max1 = Integer.MIN_VALUE, max2 = Integer.MIN_VALUE, max3 = Integer.MIN_VALUE;
        int min2 = Integer.MAX_VALUE, min1 = Integer.MAX_VALUE;
        for (int num : nums) {
            if (num >= max1) {
                max3 = max2;
                max2 = max1;
                max1 = num;
            } else if (num >= max2) {
                max3 = max2;
                max2 = num;
            } else if (num >= max3) {
                max3 = num;
            }

            if (num <= min1) {
                min2 = min1;
                min1 = num;
            } else if (num <= min2) {
                min2 = num;
            }
        }
        return Math.max(max1 * max2 * max3, max1 * min1 * min2);
    }
}

參考連結: