筆試面試之求子陣列最大和

2021-05-22 20:44:08 字數 623 閱讀 9569

輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為o(n)。

方法一:分別求出所有連續陣列子集,這個比較難想,用遞迴做,然後分別求出各個子集和大小,記錄最大值即可。複雜度n方

bool findgreatestsumofsubarray

(int *pdata,           // an array

unsigned int nlength, // the length of array

int &ngreatestsum     // the greatest sum of all sub-arrays)}

return true;

} ·         函式的返回值不是子陣列和的最大值,而是乙個判斷輸入是否有效的標誌。如果函式返回值的是子陣列和的最大值,那麼當輸入乙個空指標是應該返回什麼呢?返回0?那這個函式的使用者怎麼區分輸入無效和子陣列和的最大值剛好是0這兩中情況呢?基於這個考慮,本人認為把子陣列和的最大值以引用的方式放到引數列表中,同時讓函式返回乙個函式是否正常執行的標誌。

·         輸入有一類特殊情況需要特殊處理。當輸入陣列中所有整數都是負數時,子陣列和的最大值就是陣列中的最大元素

求子陣列最大和

題目 輸入乙個整形陣列,陣列裡有正數也有負數。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。要求時間複雜度為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,因此輸...