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

[Leetcode] 628. 三個數的最大乘積 java

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

示例 1:

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

示例 2:

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

注意:

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

程式碼是別人的,很簡單,當時不好想到這。自己之前想的是遍歷,找三個最大數,但是邏輯很容易混亂。

class Solution {
    public int maximumProduct(int[] nums) {
        Arrays.sort(nums);//排序
        int a=nums[nums.length-1]*nums[nums.length-2]*nums[nums.length-3];最大的三個數
        int b=nums[0]*nums[1]*nums[nums.length-1];//兩個大負數乘一一個最大正數
        return a>b?a:b;
    }
}