- package maxs;
- importjava.util.*;
- public class maxs {
- public static void main(String[] args){
- Scanner sc=new Scanner(System.in);
- int num;
- System.out.println("请输入数组长度");
- num=sc.nextInt();
- intzif[]=new int[num];//分别的数组
- intneir[]=new int[num];//数组里面的数
- intsum1[]=new int[num];//最大值
- intd=sum1[0];
- System.out.println("请输入数组内容:");
- for(inti=0;i//输入num个数
- {
- neir[i]=sc.nextInt();
- }
- for(intj=0;j)
- {
- for(intk=0;k//分别从0-num 1-num-0 .....
- {
- zif[k]=neir[(j+k)%num];
- }
- intsum=zif[0];//记录数组和
- intb=0;//进行记录
- for(inti=0;i)
- {
- if(b<0)
- {
- b=zif[i];//b<0,b为加为负数那位的后一位
- }
- else
- {
- b+=zif[i];
- }
- if(sum<b)
- {
- sum=b;//sum为当前最大子数组的和
- }
- sum1[j]=sum;
- }
- if(d<sum1[j])
- {
- d=sum1[j];//得到最终的最大和
- }
- }
- System.out.print("最大子数组和为:");
- System.out.print(d);
- }
- }
来源: http://www.bubuko.com/infodetail-2003530.html