給定乙個整型陣列,在陣列中找出由三個數組成的最大乘積,並輸出這個乘積。
示例 1:輸入: [1,2,3]
輸出: 6
示例 2:輸入: [-10,-2,3,5,4]
輸出: 100
注意:方法一(排序法):給定的整型陣列長度範圍是[3,104],陣列中所有的元素範圍是[-1000, 1000]。
輸入的陣列中任意三個數的乘積不會超出32位有符號整數的範圍。
首先對陣列進行排序。如果所有的元素都為非負整數,直接返回陣列的末尾三位相乘的結果;
若陣列中存在負數,則需要比較兩位最小的負數與一位最大正數的乘積,返回它們中較大的乙個。
方法二(尋值法):
排序的目的在於找出三個最大值和兩個最小值。我們可以直接找出三個最大、兩個最小值,對它們的乘積進行比較,返回較大值。
//方法一:
class
solution
}
方法二:
class
solution
else
if(temp < min2)
if(temp > max1)
else
if(temp > max2)
else
if(temp > max3)
} result1 = min1 * min2 * max1;
result2 = max1 * max2 * max3;
return result1 > result2 ? result1 : result2;
}}
三個數的最大乘積
給定乙個整型陣列,在陣列中找出由三個數組成的最大乘積,並輸出這個乘積。leetcode鏈結 示例 1 輸入 1,2,3 輸出 6示例 2 輸入 1,2,3,4 輸出 24注意 給定的整型陣列長度範圍是 3,104 陣列中所有的元素範圍是 1000,1000 輸入的陣列中任意三個數的乘積不會超出32位...
三個數的最大乘積
給定乙個整型陣列,在陣列中找出由三個數組成的最大乘積,並輸出這個乘積。示例 1 輸入 1,2,3 輸出 6 示例 2 輸入 1,2,3,4 輸出 24 注意 給定的整型陣列長度範圍是 3,104 陣列中所有的元素範圍是 1000,1000 輸入的陣列中任意三個數的乘積不會超出32位有符號整數的範圍。...
三個數的最大乘積
題目 給定乙個整型陣列,在陣列中找出由三個數組成的最大乘積,並輸出這個乘積。示例 1 輸入 1,2,3 輸出 6 示例 2 輸入 1,2,3,4 輸出 24 解題思路1 先對陣列進行排序,然後發現答案有兩種情況,如果有負數那麼最大乘積可能是前兩最小負數乘以最大正數,前三個最大正數乘積,對這三種情況進...