三個數的最大乘積

zyfsuzy發表於2020-02-19

題目

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

示例 1:

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

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

解題思路

1. 分為三種情況,全部正數,全部負數,有正數,有負數

2. 全部正數/負數取排序後三最大三位

3. 有正有負,最大乘積出現在兩端

程式碼

```java

class Solution {

public int maximumProduct(int[] nums) {

    if(nums == null || nums.length < 3)

        return 0;

    Arrays.sort(nums);

    System.out.println(nums);

    //全部正數

    if(nums[0] >= 0 ){

        return nums[nums.length-1] * nums[nums.length-2] *nums[nums.length-3];

    }

    //全部負數

    if(nums[nums.length-1] <= 0){

        return nums[nums.length-1] * nums[nums.length-2] *nums[nums.length-3];

    }

    //有正數有負數

    return   Math.max(nums[0]*nums[1]*nums[nums.length-1], nums[nums.length-1] * nums[nums.length-2] *nums[nums.length-3]);

}

}

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章