1. 程式人生 > >動態規劃:最大欄位和問題

動態規劃:最大欄位和問題

import java.util.Scanner;

/*
 * 最大子段和問題,-2 11 -4 13 -5 -2中最大的子段和
 */
public class MaxSum {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        int[] a=new int[n];
        boolean[] flag=new boolean[n];
        for (int i = 0
; i < n; i++) { a[i]=scanner.nextInt(); flag[i]=false; } int sum=0,max=0; for (int i = 0; i < a.length; i++) { sum+=a[i]; if (sum>max) { max=sum; flag[i]=true; } else
if (sum<0) { sum=0; } } System.out.println(max); int i=-1,j=flag.length; while (true){ while (!flag[++i]); while (!flag[--j]); System.out.println(i+1+" "+j+1); break; } } }