L53-Maximum-Subarray
Posted lijianming180
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了L53-Maximum-Subarray相关的知识,希望对你有一定的参考价值。
题目描述
Find the contiguous subarray within an array (containing at least one number) which has the largest sum.
For example, given the array [-2,1,-3,4,-1,2,1,-5,4],
the contiguous subarray [4,-1,2,1] has the largest sum = 6.
解题思路
动态规划思想
以nums数组[-2,1,-3,4,-1]为例
- dp[0]为-2
- dp[1] = max(dp[0]+nums[1],1)=max(-2,1)=1
- dp[2] = max(dp[1]+nums[2],-3)=max(1-3,-3)=-2
- 当前的sum为dp[i-1]+nums[i], nums[i]最大值
- 然后将maxSum和sum进行比较,取最大值
Go代码实现
Go代码实现1
1 |
|
Go代码实现2
1 | func maxSubArray(nums []int) int { |
参考文档
以上是关于L53-Maximum-Subarray的主要内容,如果未能解决你的问题,请参考以下文章