面試題27 連續子陣列的最大和

2021-09-06 11:10:23 字數 1031 閱讀 5856

注意:當函式輸入無效時,返回為0,而子陣列的和也有可能為0,為了區分,設定乙個全域性變數標記輸入是否有效。

思路用下表說明:

bool binvalidinput = false;//用全域性變數標記是否為無效輸入

//求連續子陣列的最大和

int findgreatestsumofsubarray(int narr, int nlength)

int ngreatestsum = 0x80000000;//記錄連續子陣列的最大和,初始值設定為很小的負數

int ncurrentsum = 0;

for (int i=0; ingreatestsum)

}return ngreatestsum;

}int _tmain(int argc, _tchar* argv)

; int ngreatestsumofsubarray1 = findgreatestsumofsubarray(narr1, 8);

if (!binvalidinput)

int narr2[8] = ;

int ngreatestsumofsubarray2 = findgreatestsumofsubarray(narr2, 8);

if (!binvalidinput)

return 0;

}執行結果:

面試題27 連續子陣列的最大和

注意 當函式輸入無效時,返回為0,而子陣列的和也有可能為0,為了區分,設定乙個全域性變數標記輸入是否有效。思路用下表說明 bool binvalidinput false 用全域性變數標記是否為無效輸入 求連續子陣列的最大和 int findgreatestsumofsubarray int nar...

27 連續子陣列的最大和

連續子陣列的最大和 hz偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了 在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如 連續子向量的最大和為8...

面試題31 連續子陣列的最大和

題目 輸入乙個整形陣列,陣列裡有正數也有負數,陣列中乙個或連續的多個整數組成乙個子陣列。求所有子陣列的和的最大值。要求時間複雜度為o n 例如,輸入陣列 1,2,3,10,4,7,2,5 和最大的子陣列微3,10,4,7,2,因此輸出該子陣列的和18 思路 1,分析陣列規律 初始化和0,第一哥數字1...