import java.util.Arrays;
public class 最大子序列和
{
public static void main(String[] args)
{
int[] arr={1,-2,3,4,5,-2,-9,12,-9,6,-5,-4,7};
System.out.println(Arrays.toString(arr));
System.out.println(getMaxSubSequence(arr));
return;
}
public static String getMaxSubSequence(int[] arr)
{
int max=0;
int thisSeq=0;
int Seqi=0,Seqj=0;
for(int i=0,j=i;j<arr.length;j++)
{
thisSeq+=arr[j];
if(thisSeq>max)
{
max=thisSeq;
Seqi=i;
Seqj=j;
}
if(thisSeq<0)
{
i=j+1;
thisSeq=0;
}
}
return new String("从 "+Seqi+" 到 "+Seqj+" 存在最大子序列和为 "+max);
}
}
O(n)时间算法最大子序列和
最新推荐文章于 2022-12-27 16:22:02 发布