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

    思路:分别计算从第i个数字开始的子数组的最大值,将所有的最大值保存在一个新的数组中,再找出新数组中的最大值,即为这个整数数组中最大子数组,但是距离要求还有很大的差距,下次更新时间复杂度为o(n)的方法。

    package a;
    import java.util.*;
    public class m {
        static Scanner sc=new Scanner(System.in);
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
            int a;
            System.out.println("请输入数组长度");
            a=sc.nextInt();
            int l[]=new int [a];//定义规定长度的整型数组
            System.out.println("请输入数组元素");
            for(int i=0;i<a;i++)
            {
                l[i]=sc.nextInt();
            }
            int i,j,k;
            int max[]=new int [a];
            for(i=0;i<a;i++){
                max[i]=l[i];
                k=l[i];
                for(j=i+1;j<a;j++){
                    k=k+l[j];
                    if(k>max[i])
                    {
                        max[i]=k;
                    }
                }
            }
            int m=max[0];
            for(i=1;i<a;i++)
            {
                if(max[i]>m)
                {
                    m=max[i];
                }
            }
            System.out.println("所有子数组的和的最大值为"+m);
                    
        }
    
    }
  • 相关阅读:
    Word Puzzles [POJ 1204]
    set用法
    FOJ有奖月赛2012年11月
    BerDonalds
    POJ1469 匈牙利算法
    后缀数组
    ZOJ Monthly, January 2013
    算法导论<一>
    Yell Classico
    点聚 WebOffice 编辑辅助控件 WebOffice.OCX
  • 原文地址:https://www.cnblogs.com/123456www/p/10506441.html
Copyright © 2011-2022 走看看