https://leetcode.cn/problems/maximum-subarray
解题思路:
使用贪心思想,我们加入一个新元素时希望当前的子数组和为正数,如果不为正数那么我们就舍弃之前的子数组重新开始。
func maxSubArray(nums []int) int {
r := 1
maxSum, currSum := nums[0], nums[0]
for r < len(nums) {
// 如果当前子数组和为负数,则舍弃之前的子数组重新开始
if currSum <= 0 {
currSum = nums[r]
} else { // 如果当前子数组和为正数,则继续累加
currSum += nums[r]
}
maxSum = max(maxSum, currSum)
r++
}
return maxSum
}
616

被折叠的 条评论
为什么被折叠?



