给定整数序列求连续子串最大和

2017-08-26  本文已影响0人  Jacinth

程序写入输入

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;
    }
}

键盘写入输入

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;
    }
}

上一篇 下一篇

猜你喜欢

热点阅读