求一個數組的連續子數組和的

假設有一個數組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));
}

結果顯示:
結果表示

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章