給定整數(shù)序列求連續(xù)子串最大和

程序?qū)懭胼斎?/p>

package didi;
public class MaxSubSum {
    public static void main(String[] args) {
        int[] a={-23,17,-7,11,-2,1,-34};
        System.out.println(max(a));
    }
    private static int max(int[] a) {
        int maxSum=0;
        int thisSum=0;
        for(int anA:a){
            thisSum+=anA;
            if (thisSum>maxSum) {
                maxSum=thisSum;
            }else if (thisSum<0) {
                thisSum=0;
            }
        }
        return maxSum;
    }
}

鍵盤(pán)寫(xiě)入輸入

package didi;

import java.util.Scanner;

public class MaxSubSum {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        String[] data=in.nextLine().split(" ");
        int[] input_data=new int[data.length];
        for (int i = 0; i < data.length; i++) {
            input_data[i]=Integer.valueOf(data[i]);
        }
        System.out.println(max(input_data));
    }
    
    private static int max(int[] array) {
        int maxSum=array[0];//存放最大值
        for(int i=0;i<array.length;i++){
            int thisSum=0;
            for (int j = i; j < array.length; j++) {
                thisSum+=array[j];
                if (thisSum>maxSum) {
                    maxSum=thisSum;
                }
            }
        }
        return maxSum;
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容