0
点赞
收藏
分享

微信扫一扫

每天一道算法题(33)

干自闭 2022-06-04 阅读 120

描述

请计算给出的数组(至少含有一个数字)中具有最大和的子数组(子数组要求在原数组中连续)例如:给出的数组为[−2,0,−3,4,−2,2,2,−5,4],子数组[−2,0,−3,4,−2,2,2,−5,4],具有最大的和:6.

public int maxSubArray (int[] A) {
if(A.length == 0) return 0;
int sum = 0, max = A[0];
for(int i = 0;i<A.length;i++){
sum = sum+A[i];
if(max <sum) max = sum; //max只是为了找到子数组最大的和
if(sum < 0) sum = 0; //如果sum是负数,那么它对于下一个数没有一个正加成,清零
}
return max;
}
举报

相关推荐

0 条评论