假设有一个数组array[]={1,-2,3,10,-4,7,2,-51},求其连续子数组和的最大值。
我们可以这样考虑,首先将1和-2相加,和为-1<0,且-1<3,所以我们舍弃前两项,从第三项开始加 当加到最后一位时,发现和<0,即从第三项开始加到第七项的和为最大值。

代码示例:

public static int SumMax(int[] array){
    int sum=0;
    int max=0x80000000;
    for (int i = 0; i <array.length ; i++) {
        if(sum<=0){
            sum=array[i];
        }else{
            sum+=array[i];
        }
        if(sum>max){
            max=sum;
        }
    }
    return max;
}
public static void main(String[] args) {
	int[] array2={1,-2,3,10,-4,7,2,-51};
	System.out.println(SumMax(array2));
}

结果显示:
求一个数组的连续子数组和的

相关文章:

  • 2022-01-01
  • 2021-12-02
  • 2021-08-24
  • 2022-12-23
  • 2022-12-23
  • 2022-02-27
  • 2021-07-04
  • 2022-01-22
猜你喜欢
  • 2021-06-03
  • 2021-12-21
  • 2022-12-23
  • 2022-03-01
  • 2022-03-03
相关资源
相似解决方案