LeetCode 每日一題628. 三個數的最大乘積
阿新 • • 發佈:2021-02-03
628. 三個數的最大乘積
給定一個整型陣列,在陣列中找出由三個陣列成的最大乘積,並輸出這個乘積。
示例 1:
輸入: [1,2,3]
輸出: 6
示例 2:
輸入: [1,2,3,4]
輸出: 24
注意:
- 給定的整型陣列長度範圍是[3,104],陣列中所有的元素範圍是[-1000, 1000]。
- 輸入的陣列中任意三個數的乘積不會超出32位有符號整數的範圍。
方法一:排序
解題思路
不難發現答案只能在兩個數中產生
- 最小的兩個數和最大的數相乘
- 最大的三個數相乘
排序後找出對應上的數相乘就 OK 了~
參考程式碼
public int maximumProduct (int[] nums) {
Arrays.sort(nums);
int n = nums.length;
return Math.max(nums[0] * nums[1] * nums[n - 1], nums[n - 3] * nums[n - 2] * nums[n - 1]);
}
執行結果
PS:也可以通過一次遍歷找出這 五個數,筆墨水快用完了,就不寫了~