设计思路:
在动态规划01上循环改为两次,使其形成一个圈
package work2;
import java.util.Scanner;
public class m {
public static void main(String[] args)
{
int a;
System.out.println("请输入数组长度");
Scanner sc=new Scanner(System.in);
a=sc.nextInt();
int b[]=new int[a];
System.out.println("请输入数组元素");
int i;
for(i=0;i<a;i++)
{
b[i]=sc.nextInt();
}
int sum,c,s=0,e=0;
sum=b[0];
c=b[0];
int i1=1;
for(i=1;i<2*a;i++)
{
i1++;
if(i1==a)
{
i1=i1-a;
}
if(c>0)
{
c=c+b[i1];
e=i1;
}
else
{
c=b[i1];
s=i1;
e=i1;
}
if(sum<c)
{
sum=c;
}
}
System.out.println("最大子数组值为"+sum);
}
}