1. 程式人生 > >隨筆-陣列中三個數的最大乘積

隨筆-陣列中三個數的最大乘積

題目:

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

示例 1:

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

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

給定的整型陣列長度範圍是[3,104],陣列中所有的元素範圍是[-1000, 1000]。
輸入的陣列中任意三個數的乘積不會超出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;
    }
}