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]);
        }
    }

    三:程序结果截图

  • 相关阅读:
    追寻缺失的大学精神 一个民族需要关注天空的人
    图论简介
    18个分形图形的GIF动画演示
    平行宇宙
    eclipse经常出现——未响应!!!
    单例模式
    Java内存区域
    编译与解释(java)
    正则表达式判断QQ号格式是否正确
    正则表达式判断手机号格式是否正确
  • 原文地址:https://www.cnblogs.com/xiaoabu/p/5369103.html
Copyright © 2011-2022 走看看