课堂作业--最大子数组的和

设计思想:

对于有正数和负数都有的数组,随机从数组中选一个数,将选的数初始化为0,因此执行时从正数开始,依次累加,就可以了。

程序代码:

public class java {
 public static void main(String args[])
 {
  int temp=0;
        int sum=0;
      
      
        int[] arr={-1,2,4,-9,5};
       
        for(int i=0;i<arr.length;i++)
        {    
         
            if(temp<0)
                temp=arr[i];
            else
                temp+=arr[i];
            if(temp>sum)
                sum=temp;
        }
  
  
  
  System.out.println(sum);
 }

}

程序截图:

程序总结:

通过这次程序,发现一个问题可以由不同的方法来解决。

时间: 2024-10-06 04:48:36

课堂作业--最大子数组的和的相关文章

课堂练习--最大子数组和 环

一.设计思路 1.circle(int l)函数进行数组长度的输入. 2.setArray()函数进行数组的输入. 3.changeArray()函数将数组环转化为数组列 此时求出的max为环的最大值 首先,将array[]数组的值赋值给sArray[]数组,进行原值储存.然后for循环找出此数组的最小值. 然后在通过循环得到此最小值的位置.然后在将位置后的数赋值给新数组nArray数组前面,位置前的       赋值给nArray后面,得到一个最小值在首位置的新数组. 4. ArrayMax(

软件工程课堂作业(最小数组和)

1.设计思想 2.源程序 import java.util.*; public class max_add { static Scanner in=new Scanner(System.in); public static void main(String[] args){ int n=0; System.out.println("请输入数组个数:"); n=in.nextInt(); int a[]=new int[2*n-2]; System.out.print("请输入

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

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

课堂作业数组最大和

题目: 输入一个一维整形数组,数组里有正数也有负数. 一维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值. 发表一篇博客文章讲述设计思想,出现的问题,可能的解决方案(多选).源代码.结果截图.总结. 设计思想: 1.设计思想: 首先设置两个变量,分别用来存储数组长度也就是number和结果result:然后再通过语句来询问用户需要的数组长度再设个动态数组用来让用户输入数组中的数字,将每一个数值都存放进数组对应位

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

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

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

本次的题目是:返回一个整数数组中最大子数组的和 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 如果数组A[0]……A[j-1]首尾相邻,允许A[i-1],…… A[n-1],A[0]……A[j-1]之和最大. 同时返回最大子数组的位置. 求所有子数组的和的最大值. 分析: 这个题目是在上个题目的基础的加上数组首位相连,并该数组最大子数组的和,实现方法就是把环变成直线的方法,通过for循环,在每次循环中,把数组中的元素作为数组的

课堂练习求环整数组中最大子数组之和

设计思路:之前还有一个课堂练习,是用户输入一个整数组,求其中最大子数组之和,我借鉴的其他同学的代码,仅在此基础上修改的.运用try,catch使得用户不必在输入数组之前输入数组的长度,但是需要一个除整数以外的数来结尾.一共使用了3个循环,运用一个循环得出每个数组中最大子数组之和的最大值,一个是用来计算最大子数组之和,最后一个用来实现数组的前移.第一个循环中包着另外两个循环.总的来说,是在之前课堂练习的基础上增加了将一个数组中的每个数做一次最前面的数,从中求出最大值. 程序代码: 1 import

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

本次的题目是:返回一个整数数组中最大子数组的和 要求:1.输入一个整形数组,数组里有正数也有负数.2.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.3.求所有子数组的和的最大值.要求时间复杂度为O(n) 分析: 当我们求出的累加和加上一个正数的时候,整个累加和就会增加,当我们的累加和加上一个负数的时候,整个累加和就会减小,我们用一个变量max保存累加和的最大值,另外,我们的累加和如果为负数的时候,如果继续加数不把累加和清零的话,那么整个和就会减小,因此如果累加和为负,就把累加和

软件工程课堂练习:返回一个一维整数数组中最大子数组的和

题目:返回一个一维整数数组中最大子数组的和.要求:输入一个一维整形数组,数组里有正数也有负数.一维数组首尾相接,象个一条首尾相接带子一样.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值. 此次何琳琳负责程序分析,代码编程,张一博负责代码复审和代码测试计划. 经分析讨论设计思路如下: 1.定义一个长为20的数组,先对前10个数进行初始化,后10个数等于前10个数: 2.设置长度为10的循环依次以前十个数为头进行最大子数组的计算: 3,再设置一个数组用来存储