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

2021-07-06 00:10:24 字數 389 閱讀 7539

有乙個整型陣列,裡面的元素有正數和負數,乙個或者連續的多個元素組成乙個子陣列,求所有子陣列的和的最大值。也就是連續子陣列最大和問題。

這道題一般使用動態規劃來做,面試的時候問到也是考察動態規劃。f(i)表示以i結尾的子陣列的最大和。既然是以i結尾,那從何處開始呢?j在i的左邊,如果a[0]到a[j]的和為負,那f(i)應該從j+1開始。那f(i)的遞推公式怎麼算呢?

f(i) = f(i-1) + a[i];條件是f(i-1) > 0

f(i) = a[i];條件是f(i-1) <= 0

要求的結果ans就等於所有f(i)的最大值了。

class solution 

return max_sum;

}};

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

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

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

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

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

題目 輸入乙個整型陣列,陣列裡有正數也有負數。陣列中乙個或連續多個整數組成乙個子陣列。求所有子陣列的和的最大值。要求時間複雜度為o n 邊界條件及異常 空陣列。思路 考慮陣列2,1,4,3,4,5,7 我們用陣列dp來存子陣列包括自己和自己前面元素的最大的和,則有 dp 不難得出所有子陣列最大的和是...