1 package 数组; 2 import java.util.Arrays; 3 import java.util.Scanner; 4 public class Sum { 5 public static void main(String[] args) { 6 // TODO 自动生成的方法存根 7 Scanner sc = new Scanner(System.in); 8 System.out.print("输入数组个数:"); 9 int n = sc.nextInt(); 10 System.out.print("输入数组:"); 11 int a[] = new int[n]; 12 for(int i=0; i<n; i++) 13 { 14 a[i] = sc.nextInt(); 15 } 16 sc.close(); 17 String intArrayString = Arrays.toString(a); 18 System.out.println(large(a,n)); //打印最大子数组 19 } 20 private static int max(int a,int b) { 21 if(a>b) return a; 22 else return b; 23 } 24 private static int large(int a[],int n) { 25 int max=a[0]; 26 int max2=0; 27 for (int i= 0; i< n; i++) 28 { 29 max2=max(max2+a[i],a[0]); //几个连续最大的值 30 max=max(max,max2); //目前为止最大值 31 for(int j=0;j<i;j++) 32 { 33 System.out.println("从第"+ a[j]+"个"); 34 } 35 System.out.println("到第"+a[i]+"个"+"当前最大子数组"+max2); 36 } 37 return max; 38 39 } 40 }