对于一个有正有负的整数数组,请找出总和最大的连续数列。
给定一个int数组A和数组大小n,请返回最大的连续数列的和。保证n的大小小于等于3000。
测试样例:
[1,2,3,-6,1]
返回:6
解题思路:贪心算法每次求局部最优解,先设置max为数组中的第一个数,然后计算A[0]到A[n]数组的和temp与max比较,如果大于max,则将temp的值的赋值给max,其次因为题目说数组是连续的即可,则还有依次从A[1],A[2]通过相同的方式求和与max比较求得局部最优解,最后达成整体上的最优解。
import java.util.*;
public class MaxSum {
public static int getMaxSum(int[] A, int n) {
int max=A[0];
int temp;
for(int i=0;i<n;i++){
for (int k=0;k<=i;k++){
temp=0;
for(int j=k;j<=i;j++){
temp+=A[j];
}
if(max<temp){
max=temp;
}
}
}
return max;
}
}