注意:當函式輸入無效時,返回為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...