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

要求:

输入整数数组,子数组求和,求子数组的最大值,时间复杂度为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);
    }

}

结果:

时间: 2024-10-13 00:57:39

返回一个整数数组中子数组的最大值的相关文章

返回一个整数最大连通数组和

一.实验题目 二维数组的最大联通子图和 二.实验思想 1.先在主函数内输入行数和列数,然后利用for循环进行对二维数组的赋值. 2.调用求最大值的函数求二维数组的联通最大值. 3.其中当列数为1时,需要另外考虑,当成一维的计算,其它的情况利用先求每行的最大和最小块,然后进行最后的求总的最大值,然后返回进行输出最大值. 三.实验代码 import java.util.Scanner; import javax.print.attribute.standard.PrinterLocation; pu

软件工程课程作业(四)--返回一个整数数组中最大子数组的和

伙伴链接:http://www.cnblogs.com/haoying1994/ 一.设计思想 本实验要求输入一个正负数混合的整型数组,长度不限,在此数组的所有子数组中找到和最大的数组,并求出相应数组的和,且时间复杂度为O(n).我们在课堂上共同讨论了多种解决方案,这些将在下面可能的解决方案中展示,在听了同学的思路和老师的讲解之后, 我们最终选取了老师课堂上描述的比较简便的思路.如下: 在输入数组的环节,采用for无限循环加if判断截止,直到触发回车键为止,将数组记录到Array中,数组长度记录

返回一个整数数组(环形数组)中最大子数组的和

一.实验题目 题目:返回一个整数数组中最大子数组的和. 要求:      输入一个整形数组,数组里有整数也有负数.      数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.      如果数组A[0]……A[j-1]首尾相邻,允许A[i-1],……A[n-1],A[0]……A[j-1]之和最大.      同时返回最大子数组的位置. 求所有子数组的和的最大值.要求时间复杂度为O(n). 二.实验思路 由于这次所要求的子数组相当于一个环形的数组,所以就想到了类似数字右循环的形式来

整数数组中子数组的最大值2

设计思路 (1)     首先设置要输入的数字个数和输入的数字: (2)     求数组number[]中子数组的最大值,运用到数组的动态规划,会运用到两个变量进行比较,一个为子数组的和,另一个为子数组和的最大值:maxnum=max{temp,maxnum}:temp和maxnum初始化为第一个数的值: (3)     依次检索每个数的值,每次将值与下一个数的值相加并将值赋值给变量temp:如果temp<0:temp再加上下一个数,temp会更小,此时将temp=0,便于不影响下一个子数组的和

软件工程结对开发——返回一个整数数组中最大子数组的和(JAVA)

题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整型数组,数组里有正数也有负数: 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 求所有子数组的和的最大值.要求时间复杂度为O(n): 一.设计思想 1.首先随机产生一个数组,数组长度可自行输入,该数组里有正数也有负数. 2.从数组中第一个元素a[0]开始,依次计算a[0].a[0]+a[1].a[0]+a[1]+...+a[i]的值,即从a[0]开始的每个子数组的和,取出最大值. 3.再从数组第二个元素a[1]开始,依

返回一个整数数组中最大子数组的和之测试

题目:返回一个整数数组中最大子数组的和. 要求: 要求程序必须能处理1000 个元素: 每个元素是int32 类型的: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值.要求时间复杂度为O(n). 思路: 考虑到手动输入1000个元素所以在程序中由系统随机出1000个元素进行测试.代码与之前的代码差别不大. 程序代码: 1 #include <iostream.h> 2 #include<stdlib.h

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

题目:返回一个整数数组中最大子数组的和3 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 如果数组A[0]……A[j-1]首尾相邻,允许A[i-1], …… A[n-1], A[0]……A[j-1]之和最大. 同时返回最大子数组的位置. 求所有子数组的和的最大值. 思路: 代码: 截图: 总结:

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

题目:返回一个整数数组中最大子数组的和2 要求: 要求程序必须能处理1000 个元素: 每个元素是int32 类型的: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值. 思路: 代码: 截图: 总结:

结对开发之《返回一个整数数组中最大子数组的和》

一.题目: 返回一个整数数组中最大子数组的和. 要求: 1.输入一个整形数组,数组里有正数也有负数. 2.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 3.求所有子数组的和的最大值.要求时间复杂度为O(n). 二.设计思路 1.定义一个大小为10的数组,接受任意十个自然正数: 2.分别将连续的一个数,两个数,......,组合成子数组,分别求出包含一个元素的数组的最大值,两个元素的,三个元素的,......,然后再比较这十组的值,求出最大值,即为所求: 3.单独判断一些特殊的

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

一:题目内容及设计思路 1.题目: 返回一个整数数组中最大数组的和 2.要求: (1)输入一个整数数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)求所有子数组的和的最大值.有球时间复杂度为O(n). 3.设计思路: (1)利用while循环输入各个整数,用getchar()函数判断while循环是否结束,当用户按下回车键时,即getchar()=='\n'时,跳出while循环: (2)记录下循环的次数,即数组长度: (3)调用函数Co