由於上一次輸入陣列出錯,本次更正。
設計思想:
1.輸入字串陣列
2.將字串陣列賦初值刪去空格、換行以及初值,將其他字元轉化成整數陣列儲存起來。
3.環形整數陣列在每乙個點出都可能斷開,所以設定兩個迴圈,借用第一次計算乙個一維陣列的子陣列最大和
4.從每乙個點都開始一次計算出每乙個一維陣列的子陣列最大和,比較哪乙個最大,輸出。
#include #includeusing
namespace
std;
#define max 100
#define no -9999
intmain()
cout
<
請輸入整數陣列:
"; //
輸入for(int i=1;i//
使用字串記錄,從1開始,計算兩位數時避免前乙個字串不存在。
for(int i=1;i)
else
}else
else}}
}}/*cout <
cin>>length;
cout
*/for(int i=length;i<2*length-1;i++) //
檢查是否是轉化為想要的陣列
for(int i=0;i<2*length-1;i++)
cout
cout
<
int max=0
;
for(int i=0;i//
環形陣列斷開的位置
}cout
<
該整數陣列中子陣列最大值為:
總結:在使用字串記錄輸入的字元並轉化為整數的過程中遇到了很多問題。
1.字元是乙個乙個的,但是整數有兩位也有負數,在轉化的時候很費勁。
2.經常忽視特殊情況
3.忘記賦初值
對於字串和整數之間的轉化已經很熟悉了。
求子陣列最大和
題目 輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為o n 例如輸入的陣列為1,2,3,10,4,7,2,5,和最大的子陣列為3,10,4,7,2,因此輸出為該子陣列的和18。因為是o n 的複雜度,...
求子陣列的最大和
題目 輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為o n 本題最初為2005年浙江大學計算機系的考研題的最後一道程式設計題,在2006年裡包括google在內的很多知名公司都把本題當作面試題。由於本...
求子陣列的最大和
陣列 一 題目 感謝 提供的題目 求子陣列的最大和 輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為o n 例如輸入的陣列為1,2,3,10,4,7,2,5,和最大的子陣列為3,10,4,7,2,因此輸...