代码改变世界

一位数组的最大子数组(debug版)

2019-04-25 21:34  一念永恒s  阅读(176)  评论(0编辑  收藏  举报
 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  }