Leetcode53 最大子串行和

2022-06-09 02:12:08 字數 647 閱讀 4052

給定乙個整數陣列nums,找到乙個具有最大和的連續子陣列(子陣列最少包含乙個元素),返回其最大和。

核心思想就是檢查之前 i-1 的元素和,如果小於零就捨棄——對應下面第六行**

1

class

solution

9return

max_nums;10}

11 };

關於動態轉移方程建立的分析如下:

摘自 

1

class

solution

12return

max_sum;13}

14 };

上面時間複雜度為o(n),空間複雜度為o(n)   但是這題從動態轉移方程可以看出dp[i] 只依賴於前面 dp[i-1]  。 

所以可以不使用陣列來儲存dp,用int變數來儲存。 這樣得到優化後的空間複雜度為o(1)的**如下

1

class

solution

11return

max_sum;12}

13 };

LeetCode 53 最大子串行和

給定乙個整數陣列nums,找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6解釋 連續子陣列 4,1,2,1 的和最大,為 6。高階 如果你已經實現複雜度為 o n 的解法,嘗試使用更為精妙的分治法求解。動態規劃 param...

Leetcode 53最大子串行和

int maxsubarray vectornums int res dp 0 for int i 1 i len i return res 第 1 步 定義狀態 既然乙個連續子陣列一定要以乙個數作為結尾,那麼我們就將狀態定義成如下。dp i 表示以nums i 結尾的連續子陣列的最大和。第 2 步...

LeetCode53最大子序和

給定乙個序列 至少含有 1 個數 從該序列中尋找乙個連續的子串行,使得子串行的和最大。例如,給定序列 2,1,3,4,1,2,1,5,4 連續子串行 4,1,2,1 的和最大,為6。擴充套件練習 若你已實現複雜度為 o n 的解法,嘗試使用更為精妙的分治法求解。一開始用的最簡單最直接的方法,挨個的把...