給定一個整數數組 nums ,找到一個具有最大和的連續子數組(子數組最少包含一個元素),傳回其最大和。
示例 1:
輸入:nums = [-2,1,-3,4,-1,2,1,-5,4]
輸出:6
解釋:連續子數組 [4,-1,2,1] 的和最大,為 6 。
示例 2:
輸入:nums = [1]
輸出:1
示例 3:
輸入:nums = [0]
輸出:0
示例 4:
輸入:nums = [-1]
輸出:-1
示例 5:
輸入:nums = [-100000]
輸出:-100000
這題找最大子序和,注意這裡是必須連續的。本題使用動态規劃的思想,設dp表示目前元素能取的最大自序和,那麼怎麼找每個元素到目前為止的最大子序和呢?我們可以這樣想,當我們從前向後找最大的時候,如果前面的元素加上目前值比目前值小,那麼說明前面的就是累贅,我肯定取目前元素為dp的最大值,相反,如果目前元素加上前面的值比目前元素大,那麼說明目前的dp是前面的和加上目前元素作為目前的dp最大值。

出來混總是要還的