給定乙個整型陣列,在陣列中找出由三個數組成的最大乘積,並輸出這個乘積。
示例 1:
輸入: [1,2,3]
輸出: 6
示例 2:
輸入: [1,2,3,4]
輸出: 24
注意:給定的整型陣列長度範圍是[3,104],陣列中所有的元素範圍是[-1000, 1000]。
輸入的陣列中任意三個數的乘積不會超出32位有符號整數的範圍。
class solution
//方法一:排序
//求陣列最後三個元素的乘積
//求前兩個元素和最後乙個元素的乘積
//比較,得出最大值
//時間複雜度o(nlogn),空間複雜度o(logn)
private int maximumproducti(int nums)
//方法二:遍歷
//當陣列有序後,最大值為max(nums[0]*nums[1]*nums[len-1],nums[len-1]*nums[len-2]*nums[len-3])
//所以遍歷陣列,取出上面5個變數即可
//時間複雜度o(n),空間複雜度o(1)
private int maximumproductii(int nums) else
}if (n >= max3) else
} else }}
return math.max(min1 * min2 * max1, max1 * max2 * max3);
}}
刷題筆記 LeetCode 628
給你乙個整型陣列 nums 在陣列中找出由三個數組成的最大乘積,並輸出這個乘積。這是筆者的第一篇部落格,題目簡答,略顯粗糙。筆者看到這題時,頭腦簡單,直接使用sort排序,之後返回最大的三個數的乘積,這明顯是錯誤的,沒有考慮到負負得正,屬實丟臉。稍加思考之後,我分為兩種情況來進行討論。先將整個陣列進...
LeetCode 三個數的最大乘積 628
給定乙個整型陣列,在陣列中找出由三個數組成的最大乘積,並輸出這個乘積。示例 1 輸入 1,2,3 輸出 6示例 2 輸入 1,2,3,4 輸出 24注意 給定的整型陣列長度範圍是 3,104 陣列中所有的元素範圍是 1000,1000 輸入的陣列中任意三個數的乘積不會超出32位有符號整數的範圍。仔細...
Leetcode 628 三個數的最大乘積
給定乙個整型陣列,在陣列中找出由三個數組成的最大乘積,並輸出這個乘積。示例 1 輸入 1,2,3 輸出 6 示例 2 輸入 1,2,3,4 輸出 24 注意 1.給定的整型陣列長度範圍是 3,104 陣列中所有的元素範圍是 1000,1000 2.輸入的陣列中任意三個數的乘積不會超出32位有符號整數...