课上练习循环列表下求最大整数子数组

这道题主要是在求最大整数数组的基础上实现循环数组的实现

主要是基于两个问题:如何解决循环和如何解决求最大子数组

我解决循环的办法就是将数组长度扩大到两倍

最大子数组就是用动态规划

下面是java代码:

package first;

import java.util.Scanner;
 
 public class xunhuan {
 
     public static void main(String[] args) {
        // TODO Auto-generated method stub
        int i,j;
        int sum=0;
        int count=1;
        int max;
        Scanner sc=new Scanner(System.in);
        System.out.print("输入数组的长度:  ");
        i=sc.nextInt();
        int length=i*i;
        int []x=new int[i];
        int []y=new int[2*i-1];
        int []z=new int[length];
        System.out.println("请输入数组元素");
        for(i=0;i<x.length;i++)
         {
             x[i]=sc.nextInt();
         }
         for(i=0;i<y.length ;i++)
        {
            if(i<x.length)
            {
             y[i]=x[i];
            }
             else
            y[i]=x[i-x.length];            
        }
        System.out.println(" ");
       
        
    for(i=0;i<x.length;i++)
     {
         sum=0;
        for(j=i;j<i+x.length;j++)
         {
            sum=sum+y[j];
            
            z[count-1]=sum;
            count++;
         }
    }
    max=z[0];
    for(i=0;i<z.length;i++)
     {
        if(max<z[i])
            max=z[i];
    }

    System.out.println("最大子数组的和为:"+max);
     }

 }
原文地址:https://www.cnblogs.com/ljpljm/p/12397847.html