【编程题】最大连续数列和(Java实现)
题目来源
题目描述
对于一个有正有负的整数数组,请找出总和最大的连续数列。
给定一个int数组A和数组大小n,请返回最大的连续数列的和。保证n的大小小于等于3000。
测试样例:
[1,2,3,-6,1]
返回:6
题目解答
思路
1、定义一个和sum以及一个最大和max=A[0];
2、从第一个开始累加sum,如果sum>max,就将max置为sum,当sum<0时,sum重新从0开始计算;
代码
import java.util.*;
public class MaxSum {
public int getMaxSum(int[] A, int n) {
// write code here
if(n<=0)return 0;
int sum=0;
int max=A[0];
for(int i=0;i<n;i++){
sum+=A[i];
if(sum>max)
max=sum;
if(sum<=0)
sum=0;
}
return max;
}
}