温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Lintcode41 Maximum Subarray solution 题解

发布时间:2020-07-19 12:32:11 来源:网络 阅读:523 作者:abcdd1234567890 栏目:开发技术

【题目描述】

Given an array of integers, find a contiguous subarray which has the largest sum.

Notice:The subarray should contain at least one number.

给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。

注意:子数组最少包含一个数

【题目链接】

http://www.lintcode.com/en/problem/maximum-subarray/

【题目解析】

O(n)就是一维DP.

假设A(0, i)区间存在k,使得[k, i]区间是以i结尾区间的最大值, 定义为Max[i], 在这里,当求取Max[i+1]时,

Max[i+1] = Max[i] + A[i+1],  if (Max[i] + A[i+1] >0)

= 0, if(Max[i]+A[i+1] <0),如果和小于零,A[i+1]必为负数,没必要保留,舍弃掉

然后从左往右扫描,求取Max数字的最大值即为所求。

【参考答案】

http://www.jiuzhang.com/solutions/maximum-subarray/


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI