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

程序写入输入

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容