53 最大子序和(簡單題)

2021-09-27 09:12:14 字數 764 閱讀 5684

題目描述:

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

示例:輸入: [-2,1,-3,4,-1,2,1,-5,4],

輸出: 6

解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。

class

solution

return res;

}}

思路概述:

res來記錄當前最大的子序和,sum則是不斷累加。關鍵點在於兩個條件判斷語句,當sum>0,那麼就繼續累加,因為後面可能有正數,越累加越大,這個很好理解。當sum<0時,我們直接另sum=當前的陣列值,因為這一串已經小於0了,如果後面有正數,加在一起反而使後面的子序和變小。又因為res記錄著當前最大的子序和,所以不論後面還是否應更大的都不用擔心資料的丟失。

動態規劃:

class

solution

int[

] dp =

newint

[nums.length]

; dp[0]

= nums[0]

;int res =dp[0]

;for

(int i =

1; i < nums.length; i++

)return res;

}}

力扣簡單題 53 最大子序和

題目描述 給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。解題思路 給定兩個變數sum 以及sum1,sum用來儲存最大子串行之和,sum1...

53 最大子序和

給定乙個整數陣列nums,找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。兩個變數,乙個是ans,用來儲存 更新子串行 乙個maxn,始終儲存著當前最大的子串行。子串行...

53 最大子序和

題目 給定乙個整數陣列nums,找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6解釋 連續子陣列 4,1,2,1 的和最大,為 6。思路 因為要考慮連續,所以需注意兩點,與當前比較的必定包含當前節點的上乙個節點,前n個節點...