在课堂上, 那个两个数组首位连接的问题我象不太出来, 在其他的同学讲解后我感觉一个同学的方法很好, 核心是做一个二倍长度的数组.
- package sumarray;
- import java.util.InputMismatchException;
- import java.util.Scanner;
- public class MaxSum {
- public static void main(String args[])
- {
- int maxsum=0,sum=0;
- int array[]=new int[10];
- Scanner in=new Scanner(System.in
- );
- System.out.print("输入 5 个整数:");
- for(int i=0;i<5;i++)
- {
- try// 验证输入是否合法
- {
- array[i]=in.nextInt();
- array[i+5]=array[i];
- }
- catch(InputMismatchException e)
- {
- break;
- }
- }for(int i=0;i<5;i++)
- {
- sum=0;
- for(int j=0;j<5;j++)
- {
- if(sum<0)
- sum=0;
- sum+=array[i+j];
- if(sum>maxsum)
- maxsum=sum;
- }
- }
- System.out.print("子数组的最大值为:"+maxsum);
- }
- }
来源: http://www.bubuko.com/infodetail-2998428.html