课堂作业:首尾相连求最大子数组

星光1998 星光1998     2022-08-26     733

关键词:

1.设计思想

    先将数组环拆解补在原来数组后面,再依次找子数组并相加,更新最大值,并需要将开始的负数舍去从正数开始算起,单独讨论全负情况。

2.源程序

package zishuzu;

import java.util.Scanner;

public class zsz {
    public static void main(String[] args) {
        System.out.println("请输入数字个数:");
        Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        System.out.println("请输入每个数字:");
        int [] a=new int[100];
        for(int i=0;i<n;i++)
        {
            a[i]=in.nextInt();
            if(i<n-1)
                a[i+n]=a[i];
        }
        int max=a[0];
        int b=0,c=0,sum=0;
        //求最大子数组
        for(int i=0;i<n;i++)
        {
            if(a[i]>0)
            {
                int m=0;
                for(int j=0;j<n;j++)
                {
                    m=m+a[j+i];
                    if(m>max)
                    {
                        b=i;
                        c=j;
                        max=m;
                    }
                }
            }
            else if(a[i]>max)
            {
                b=i;
                c=0;
                max=a[i];
            }
        }    
        System.out.println("数组最大子数组:");
        for(int i=b;i<=b+c;i++)
        {
            sum=sum+a[i];
            System.out.print(a[i]+" ");
        }
        System.out.println();
        System.out.println("数组最大子数组的和:"+sum);
        in.close();
    }
}

3.实验结果截图

软件工程个人作业04(求数组最大子数组的和)

...加到数组的后面,形成一个新的数组,这样就可以求这种首尾相连的数组的最大子数组和了。 查看详情

软件工程结对作业02

...数组的和的最大值。设计思想:1.先进行第一步,不考虑首尾相连,怎样求一个数组的最大子数组?  求出所有的子数组的和进行比较,选择最大的子数组,记录它的起始和终止的位置,就能够提取出这个子数组。2.首尾相连... 查看详情

课堂练习:返回一个二维数组中最大子数组的和

1、题目:返回一个二维数组中最大子数组的和。2、要求:输入一个二维整形数组,数组里有正数也有负数。二维数组首尾相接,象个一条首尾相接带子一样。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和... 查看详情

首尾相连求最大子数组和

题目要求:1、输入一个一维整形数组,数组里有正数也有负数。2、一维数组首尾相接,象个一条首尾相接带子一样。3、数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。 ... 查看详情

课堂练习;返回一个二维数组中最大子数组的和

1、要求:输入一个二维整形数组,数组里有正数也有负数。二维数组首尾相接,象个一条首尾相接带子一样。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂... 查看详情

首尾相连求最大子数组

1.设计思想先将数组环拆解补在原来数组后面,然后依次找子数组并相加,更新最大值。开始的负数舍去从正数开始算起,单独讨论全负情况。2.源程序packagezishuzu;importjava.util.Scanner;publicclasszsz{publicstaticvoidmain(String[]args){System.out.p... 查看详情

课堂测试总结-数组

...尾相接然后求最大子数组,刚开始我看到题目时想到的是首尾相连后的新数组的子数组,并求出所有子数组得值填入新数组,并用冒泡排序进行排序,求得最大子数组的值,但是事实却繁琐,很麻烦。之后很多同学上讲台演示自... 查看详情

课堂练习----一个整数数组中最大子数组的和

本次的题目是:返回一个整数数组中最大子数组的和要求:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。如果数组A[0]……A[j-1]首尾相邻,允许A[i-1]... 查看详情

3.2课堂练习(代码片段)

题目:返回一个整数数组中最大子数组的和要求:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。如果数组A[0]......A[J-1]首尾相邻,允许A[i-1],......A[n-1],A[0]...... 查看详情

返回一个整数数组中最大子数组的和(首尾相连)

题目:返回一个整数数组中最大子数组的和。要求:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。如果数组A[0]……A[j-1]首尾相邻,允许A[i-1], …… A... 查看详情

首尾相连一维数组的最大子数组和(代码片段)

设计思想: 因为已经写过了一维数组的求最大子数组的程序,所以在原基础上做一些修改就可以了。与求数组的最大子数组相同,先遍历所有子数组,然后判断最后一个子数组是否大于0。若大于0,则重头开始遍历,直到子... 查看详情

课堂练习

思路:     求循环数组的最大子数组,相当于将数组重复两遍,然后再求出这个重复两遍的数组求出它的最大子数组即可。这个题目的实质是弄清楚循环数组求最大子数组即是讲所有数组重复一遍然后再用一般... 查看详情

软件工程个人作业04-整数数组中最大子数组和(第二版)

要求:   输入一个一维整形数组,数组里有正数也有负数。  一维数组首尾相接,象个一条首尾相接带子一样。  数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。设... 查看详情

整数数组求最大子数组和

一、实验题目  返回一个整数数组中最大子数组的和。二、实验要求  输入一个一维整形数组,数组里有正数也有负数。  一维数组首尾相接,象个一条首尾相接带子一样。  数组中连续的一个或多个整数组成一个子数... 查看详情

求一个数组的最大子数组之和

...个子数组,每个子数组都有一个和。求所有子数组的和的最大值。代码:importjava.util.Scanner;publicclassArray{publicstaticvoidmain(String[]args){System.out. 查看详情

3.1课堂练习(代码片段)

题目:返回一个二维整数数组中最大子数组的和。要求:输入一个二维整型数组,数组中有正数也有负数。二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为... 查看详情

软件工程个人作业05(二维数组求最大子数组的和)

  题目:返回一个二维整数数组中最大联通子数组的和。  要求:输入一个二维整形数组,数组里有正数也有负数。求所有子数组的和的最大值。要求时间复杂度为O(n)。  程序要使用的数组放在一个叫input.txt的文件中,文... 查看详情

课堂练习2返回一个整数数组中最大子数组的和。

  1.要求程序必须能处理1000个元素;2.每个元素是int32类型的,出现子数组之和大于整型表示的最大范围会出现什么情况;3.输入一个整形数组,数组里面既有正数也有负数;4.数组中连续的一个或多个整数组成一个字数组... 查看详情