程式設計題 最大乘積

2021-09-18 01:13:21 字數 935 閱讀 1669

給定乙個無序陣列,包含正數、負數和0,要求從中找出3個數的乘積,使得乘積最大,要求時間複雜度:o(n),空間複雜度:o(1)

輸入描述:

無序整數陣列a[n]

輸出描述:

滿足條件的最大乘積

示例1輸入

3 4 1 2

輸出24

找到陣列中最大a,第二大b,第三大c,最小d和第二小e的數即可,結果只能是abc或者ade:

n =

int(

input()

)data =

list

(map

(int

,input()

.split())

)max_0, max_1, max_2, min_0, min_1 =

float

('-inf'),

float

('-inf'),

float

('-inf'),

float

('inf'),

float

('inf'

)for num in data:

if num > max_0:

max_2, max_1 = max_1, max_0

max_0 = num

elif num>max_1:

max_2, max_1 = max_1, num

elif num > max_2:

max_2 = num

if num < min_0:

min_1, min_0 = min_0, num

elif num min_1 = num

print

(max

(max_0*max_1*max_2, max_0*min_1*min_0)

)

DFS BFS 最大乘積

今年是國際數學聯盟確定的 2000 世界數學年 又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的乙個好朋友xz也有幸得以參加。活動中,主持人給所有參加活動的選手出了這樣一道題目 設有乙個長度n的數字串,要求選手使用k個乘號將它分成k...

WinterEx 最大乘積

時間限制 1 sec 記憶體限制 128 mb 乙個正整數一般可以分為幾個互不相同的自然數的和,如3 1 2,4 1 3,5 1 4 2 3,6 1 5 2 4,現在你的任務是將指定的正整數n分解成若干個互不相同的自然數的和,且使這些自然數的乘積最大。只乙個正整數n,3 n 10000 第一行是分解...

YTU OJ 最大乘積

時間限制 1 sec 記憶體限制 128 mb 提交 292 解決 39 提交 狀態 討論版 命題人 acm4302 對於n個數,從中取出m個數,如何取使得這m個數的乘積最大呢?第一行乙個數 代表資料組數 每組資料共兩行 第一行兩個正整數n m,n,m 20 第二行給出n個整數,其中每個數的絕對值小...