爱程序网

返回一个整数数组中最大子数组的和(进行改进后的代码)

来源: 阅读:

1.设计思想

  (1)首先创建一个一维数组a[],根据用户输入的数组长度及数组内容进行存储数据。

  (2)再定义几个变量,sum用于求和,max为和最大值,num为数组长度。

  (3)开始for循环,sum初始化为0,max初始化为a[0]。循环内容为sum+=a[i];如果sum比max大则将sum值赋给max,如果sum小于0,则定义sum=0。直至循环结束,得到最大子数组的和。

2.源程序代码

//返回一个一维整数数组最大子数组和最大值
package ketang;
import java.util.*;
public class ArrayMax {

    public static void main(String[] args) {
        Scanner sca=new Scanner(System.in);
        System.out.println("输入整数数组数的个数");
        int num=sca.nextInt();
        int a[];
        a=new int[num];
        System.out.println("输入数组的数");
        int i;
        for(i=0;i<num;i++)
        {
            a[i]=sca.nextInt();
        }
        int sum=0,max=a[0];
        for(i=0;i<num;i++)
        {
            sum+=a[i];
            if(max<sum)
            {
                max=sum;
            }
            if(sum<0)
            {
                sum=0;
            }
        }
        System.out.println("最大子数组和为 "+max);
    }
}
The Main Code

3.结果截图

4.编程总结

  听了文同学的设计思路,感觉他的方法比我之前的方法简单,然后借鉴他的方法,写出了这篇代码。

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助