mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 08:50:15 +08:00
Merge pull request #528 from jiangjiangjiangjiangjiangjiangjiang/patch-1
Update 0053.最大子序和(动态规划).md
This commit is contained in:
@ -138,7 +138,35 @@ class Solution:
|
|||||||
```
|
```
|
||||||
|
|
||||||
Go:
|
Go:
|
||||||
|
```Go
|
||||||
|
// solution
|
||||||
|
// 1, dp
|
||||||
|
// 2, 贪心
|
||||||
|
|
||||||
|
func maxSubArray(nums []int) int {
|
||||||
|
n := len(nums)
|
||||||
|
// 这里的dp[i] 表示,最大的连续子数组和,包含num[i] 元素
|
||||||
|
dp := make([]int,n)
|
||||||
|
// 初始化,由于dp 状态转移方程依赖dp[0]
|
||||||
|
dp[0] = nums[0]
|
||||||
|
// 初始化最大的和
|
||||||
|
mx := nums[0]
|
||||||
|
for i:=1;i<n;i++ {
|
||||||
|
// 这里的状态转移方程就是:求最大和
|
||||||
|
// 会面临2种情况,一个是带前面的和,一个是不带前面的和
|
||||||
|
dp[i] = max(dp[i-1]+nums[i],nums[i])
|
||||||
|
mx = max(mx,dp[i])
|
||||||
|
}
|
||||||
|
return mx
|
||||||
|
}
|
||||||
|
|
||||||
|
func max(a,b int) int{
|
||||||
|
if a>b {
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user