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


    一:设计思想

    先定义一个与原数组长度相同的空数组,然后将原数组的第一个数赋值给空数组的第一个位置,然后用循环比较原数组的数字与空数组的前一个数字相加是否为负数,得到第二个数组后进行比较就可以得到整数数组中最大子数组的和并且时间复杂度为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]);
        }
    }

    三:程序结果截图

  • 相关阅读:
    转载的:关于matlab中princomp的使用说明
    STL容器Vector
    Ubuntu20.04下创建Pycharm桌面图标
    c++和c中const的区别
    内存性能分析\垃圾回收 文章
    jq使用教程
    iOS15适配 UITableView下移22px
    linux 内核头文件(转)
    bjfu1143 小蝌蚪安家 解题报告
    hdu 1874 畅通工程续 flody
  • 原文地址:https://www.cnblogs.com/xiaoabu/p/5369103.html
Copyright © 2020-2023  润新知