LeetCode每日一題: 三個數的最大乘積(No.628)

胖宅老鼠發表於2019-04-22

題目:三個數的最大乘積


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

示例:


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

輸入: [1,2,3,4]
輸出: 24
複製程式碼

思考:


最大乘積的三個數可能有兩種情況:
1.最大的三個正數相乘。
2.最小兩個負數相乘再乘上最大的整數。
所以先將陣列排序,然後按以上條件取兩種情況之中較大的數。
複製程式碼

實現:


 class Solution {
    public int maximumProduct(int[] nums) {
        Arrays.sort(nums);
        return Math.max(nums[0] * nums[1] * nums[nums.length - 1], nums[nums.length - 1] * nums[nums.length - 2] * nums[nums.length - 3]);
    }
}複製程式碼

相關文章