這是我遇到的一道面試題,當(dāng)時(shí)拿到這個(gè)題目,就在想著分情況,自己把自己給分蒙了,,,現(xiàn)在來(lái)整理下。
1、先排除不正常的數(shù)組(數(shù)組中不足三個(gè)數(shù))和數(shù)組中只有三個(gè)元素;
2、三個(gè)數(shù)乘機(jī)最大,無(wú)非只有兩種情況要么是最大的三個(gè)數(shù),要么就是兩個(gè)最小的負(fù)數(shù)和一個(gè)最大的正數(shù),把這兩種情況的乘積對(duì)比下就知道答案了。
貼上代碼:
方法1:是我自己寫的,即先進(jìn)行排序,然后直接取最大三個(gè)數(shù)和最小的兩個(gè)數(shù):

時(shí)間復(fù)雜度為O(n2)
方法2:這個(gè)是在網(wǎng)上看到的,即循環(huán)數(shù)組,拿最大的三個(gè)數(shù)和最小的兩個(gè)數(shù):

時(shí)間復(fù)雜度是O(n)