演算法作業 求解最大乘積問題 dp

2021-10-10 17:19:36 字數 643 閱讀 3121

這道題要求時間複雜度為o(n),空間複雜度為o(1),因此用dp是最簡單的做法。由於這道題存在負數,所以我在儲存最大值時,也儲存了最小值。

#include

#include

#include

using std::cin;

using std::cout;

using std::endl;

using std::string;

using std::vector;

intmaxproduct

(vector<

int>

& arr,

const

int&n)

return max3;

}int

main()

if(n <

3)cout <<

"資料量太小"

<< endl;

else

cout <<

maxproduct

(arr, n)

<< endl;

return0;

}

dp 最大乘積

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

求解最大乘積問題 C 實現

給定乙個無序陣列,包含正數 負數和0,要求從中找到3個數的乘積,使得乘積最大,並且時間複雜度為o n 空間複雜度為o 1 無序整數陣列a n 滿足條件的最大乘積。43 4 1 2 定義兩個容器,存放最大三個正數 和 最小兩個負數 考慮負負得正 然後遍歷一遍陣列,每遍歷到乙個元素,就和對應的容器進行判...

最大乘積問題

題目描述 輸入n個元素組成的序列s,找出乙個乘積最大的連續子串行,輸出最大乘積的值。如果這個最大乘積不是正數,輸出0。n小於18,每個元素值的絕對值不大於10。輸入先輸入n的值,再依次輸入n個數的序列,遇到檔案末尾結束。輸出在一行輸出最大乘積的值。樣例輸入 52 5 1 2 1 樣例輸出 20當看到...