//子数组的最大累加和问题
public class subArrAdd{
//获得子数组的最大累加和
public static int GetMaxSubArrAdd(int[]arr)
{
if(arr==null||arr.length==0)
{
return 0;
}
int subsum=0;
int m=0; //数组首部
int n=arr.length-1; //数组尾部
for(int i=0;i<arr.length;i++)
{
subsum+=arr[i];
if(subsum<0)
{
m=i+1;
subsum=0;
}
if(arr[n]<0)
{
n--;
}
}
int sum=0;
for(int k=m;k<=n;k++)
{
//System.out.print(arr[k]+" ");
sum+=arr[k];
}
return sum;
}
public static void main(String[]args)
{
//System.out.println("Hello");
int []arr={1,-2,3,5,-2,6,-1};
System.out.println(GetMaxSubArrAdd(arr));
}
}
子数组的最大累加和问题
最新推荐文章于 2021-09-20 11:54:47 发布