zoukankan      html  css  js  c++  java
  • 返回一个整数数组中最大子数组的和

    一:设计思想

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

    三:程序结果截图

  • 相关阅读:
    python字符串字典列表互转
    列表迭代器 ListIterator
    并发修改异常处理
    二月天 案例
    Calendar类
    Date类
    冒泡排序
    内部类
    python第三天
    Layui——checkbox使用
  • 原文地址:https://www.cnblogs.com/xiaoabu/p/5369103.html
Copyright © 2011-2022 走看看