給定乙個整型陣列,在陣列中找出由三個數組成的最大乘積,並輸出這個乘積。
可能組成最大乘積的三個數有兩種可能。可能一:最大的三個正數的乘積;可能二:最大的正數與最小的兩個負數的乘積。因此遍歷陣列,找出這5個數,比較可能的兩個結果,較大的那個就是我們要返回的。
在單次掃瞄中,找出最大的三個數:
如果新的數大於最大的數,那麼將最大的數移動到次大的位置,將次大的數移動到第三大的位置,並將新數插入到最大位置處。
如果性的數小於最大的數,但大於次大的數,則依次將次大的數移到第三大的位置,並將新數插入次大的位置;以此類推。
int maximumproduct(vector& nums)else if(num>=secondmax)else if(num>thirdmax)
// 更新最小值
if(num<=firstmin)else if(num}
return max(firstmax*secondmax*thirdmax,firstmin*secondmin*firstmax);
}
Leetcode 628 三個數的最大乘積
給定乙個整型陣列,在陣列中找出由三個數組成的最大乘積,並輸出這個乘積。示例 1 輸入 1,2,3 輸出 6 示例 2 輸入 1,2,3,4 輸出 24 注意 1.給定的整型陣列長度範圍是 3,104 陣列中所有的元素範圍是 1000,1000 2.輸入的陣列中任意三個數的乘積不會超出32位有符號整數...
Leetcode 628 三個數的最大乘積
給定乙個整型陣列,在陣列中找出由三個數組成的最大乘積,並輸出這個乘積。示例 1 輸入 1,2,3 輸出 6示例 2 輸入 1,2,3,4 輸出 24注意 給定的整型陣列長度範圍是 3,10 4 陣列中所有的元素範圍是 1000,1000 輸入的陣列中任意三個數的乘積不會超出32位有符號整數的範圍。一...
LeetCode628 三個數的最大乘積
給定乙個整型陣列,在陣列中找出由三個數組成的最大乘積,並輸出這個乘積。示例 1 輸入 1,2,3 輸出 6示例 2 輸入 1,2,3,4 輸出 24注意 給定的整型陣列長度範圍是 3,104 陣列中所有的元素範圍是 1000,1000 輸入的陣列中任意三個數的乘積不會超出32位有符號整數的範圍。解析...