給定乙個整數陣列nums
,找到乙個具有最大和的連續子陣列(子陣列最少包含乙個元素),返回其最大和。
核心思想就是檢查之前 i-1 的元素和,如果小於零就捨棄——對應下面第六行**
1關於動態轉移方程建立的分析如下:class
solution
9return
max_nums;10}
11 };
摘自
1上面時間複雜度為o(n),空間複雜度為o(n) 但是這題從動態轉移方程可以看出dp[i] 只依賴於前面 dp[i-1] 。class
solution
12return
max_sum;13}
14 };
所以可以不使用陣列來儲存dp,用int變數來儲存。 這樣得到優化後的空間複雜度為o(1)的**如下
1class
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 的解法,嘗試使用更為精妙的分治法求解。一開始用的最簡單最直接的方法,挨個的把...