LeetCode每日一題: 三個數的最大乘積(No.628)
摘要:
給定一個整型陣列,在陣列中找出由三個陣列成的最大乘積,並輸出這個乘積。
複製程式碼
示例:
輸入: [1,2,3]
輸出: 6
輸入: [1,2,3,4]
輸出: 24
複製程式碼
思考:
最大乘積的三個數可能有兩種情況:
1.最大的三個正數相乘。
2.最小兩個負數相乘再乘上...
給定一個整型陣列,在陣列中找出由三個陣列成的最大乘積,並輸出這個乘積。 複製程式碼
示例:
輸入: [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]); } }複製程式碼