首尾相连的数组 求其最大子数组

设计思想:将数组扩大成两倍,将第二重数组等于初始数组的第一值,即数组长度为n,int【i+n】=int【i】,利用for循环即可实现。

代码如下:

package shuzu;

import java.util.Scanner;

public class shuzu {
public static void main(String args[])
    {
        int maxsum=0,sum=0;
        int array[]=new int[10];
        Scanner in=new Scanner(System.in );
        System.out.println("输入n=?个整数");
         int n=in.nextInt();
        System.out.print("请输入n个整数:");
for(int i=0;i<n;i++)
            {
                array[i]=in.nextInt();
                array[i+n]=array[i];
            }
for(int i=0;i<n;i++)
        {
            sum=0;
            for(int j=0;j<n;j++)
            {
                if(sum<0)
                sum=0;
                sum+=array[i+j];
if(sum>maxsum)
                    maxsum=sum;
            }
        }
        System.out.print("子数组的最大值为:"+maxsum);
    }
}
原文地址:https://www.cnblogs.com/1061321925wu/p/10587563.html