您的位置:首页 > 其它

返回一个整数数组中最大子数组的和

2016-04-08 17:43 344 查看
一:设计思想

先定义一个与原数组长度相同的空数组,然后将原数组的第一个数赋值给空数组的第一个位置,然后用循环比较原数组的数字与空数组的前一个数字相加是否为负数,得到第二个数组后进行比较就可以得到整数数组中最大子数组的和并且时间复杂度为O(n)。

二:源代码

//返回一个整数数组中最大子数组的和。
//信1405-1班   20142966  黄伟鹏
import java.util.Scanner;
public class shuzu
{
public static void main(String[] args)
{
// TODO 自动生成的方法存根
int i,length;
System.out.println("请输入要进行比较的数字个数:");
Scanner in=new Scanner(System.in);
//定义数组长度
length=in.nextInt();
int list[]=new int[length];
System.out.println("请输入要进行比较的数字:");
Scanner t=new Scanner(System.in);
//定义数组的内容
for(i=0;i<length;i++)
{
list[i]=t.nextInt();
}
//定义一个空的存储数组
int size[]=new int[length];
//将数组中的数字相加,求最大值
size[0]=list[0];
for(i=1;i<length;i++)
{
if(size[i-1]<0)
{
size[i]=list[i];
}
else
{
size[i]=list[i]+size[i-1];
}
}
//求出最大值
for(i=0;i<length-1;i++)
{
if(size[0]<size[i+1])
{
size[0]=size[i+1];
}
}
//输出最大值
System.out.println(size[0]);
}
}


三:程序结果截图





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: