陣列3個數乘積的最大值

2021-08-07 21:25:15 字數 656 閱讀 4515

/*

題目:給定乙個無序陣列,包含正數、負數和0,要求從中找出3個數的乘積,使得乘積最大。

要求時間複雜度:o(n),空間複雜度:o(1)

*/function maxprod(arr)

var prod=arr[0]*arr[1]*arr[2];

if(len===3)

var max1=number.min_value,

max2=number.min_value,

max3=number.min_value;

var min1=number.max_value,

min2=number.max_value;

for(var i=0;imax1)else if(arr[i]>max2)else if(arr[i]>max3)else{}

if(arr[i]=0)

// 否則,最大乘積在(2小+1大)或(3大)中取得

var prod1=max1*max2*max3,

prod2=min1*min2*max1;

return prod1>prod2?prod1:prod2;

}var arr=[3,-4,2,1];

console.log(maxprod(arr)); // 6

輸入3個數,輸出其中的最大值

程式 include include csdn學院 2016級 檔名稱 myfun6.c 完成日期 2016年10月21日 問題描述 輸入3個數,輸出其中的最大值。int main 輸出結果 知識點總結 通過巢狀if語句,來實現三個數值大小的對比,第一層巢狀巢狀的if是在外層if a b 輸出為真的...

輸入3個數,求最大值最小值中間值

輸入3個數,求最大值最小值中間值 2 bool 如果為真,則返回1,如果為假則返回0 3 邏輯與 要求表示式兩邊同時為真,結果才為真,如果表示式兩邊有乙個為假,結果就為假。邏輯或 一真即真 4if 第一種形式,如果條件表示式為真,會執行大括號裡的語句,執行完畢後跳出大括號執行下面的語句 如果為假,跳...

獲取陣列中子串乘積的最大值

題目 給定乙個陣列,例如arr 那個8和4相乘得到32,是連續數相乘得到的最大值,得到該值即可。解答 注意此過程的三種情況即可,最大數成為最大,最小數變成最大,當前數最大。時間複雜度o n public static double getmax double arr double max arr 0...