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

    要求:

    输入整数数组,子数组求和,求子数组的最大值,时间复杂度为0,

    设计思想:

    随机生成N个整数,规定子数组的个数最大值为3的随机值,先生成一个数n1,在用for循环将前n个数向加赋值给sun[i],再生成一个随机数n2,,将n1到n2 之间的数相加赋值给sun[j++],依次循环,如果n1+n2+······大于N那将最后的和在赋值给sun[j],然后判断sun[]中的最大值,最后输出

    public class Test {
        /**
         * @param args
         */
        final static int N=10;
        public static void main(String[] args) {
            // TODO 自动生成的方法存根
            int[] a=new int[N];
            int j=0;
            int k;
            int l=0;
            int[] sum ={0,0,0,0,0,0,0,0,0};
            System.out.print("数组:");
            for(int i=0;i<N;i++)
            {
                a[i]=(int) (Math.random()*40-20);
                System.out.print(a[i]+" ");
            }
            System.out.println();
            k=(int) (Math.random()*3+1);
            j=k;
            for(int i=0;i<N;)
            {    
                sum[l]=sum[l]+a[i];
                if(i<j)
                {    
                    i++;
                }
                if(i==j)
                {
                    j=j+k;
                    k=(int) (Math.random()*3+1);
                    l++;            
                }
                if(j>N)
                {
                    j=N;
                }
                
    
            }
            System.out.print("子数组:");
            for(int i=0;i<l;i++)
            {
                System.out.print(sum[i]+"  ");
            }
            System.out.println();
            int max=sum[0];
            for(int i=0;i<l;i++)
            {
                if(sum[i]>max)
                    max=sum[i];
            }
            System.out.print("最大子数组:"+max);
        }
    
    }

    结果:

  • 相关阅读:
    省常中模拟 Test4
    省常中模拟 Test3 Day1
    省常中模拟 Test3 Day2
    省常中模拟 Test1 Day1
    树型动态规划练习总结
    noip2010提高组题解
    noip2003提高组题解
    noip2009提高组题解
    noip2004提高组题解
    noip2002提高组题解
  • 原文地址:https://www.cnblogs.com/wj1998/p/7994577.html
Copyright © 2011-2022 走看看