题目要求:返回一个整数数组中最大子数组的和

具体要求:输入一个整形数组,数组里有正数也有负数;
     数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和;
     求所有子数组的和的最大值。要求时间复杂度为O(n);
     发表一篇博客文章讲述设计思想,出现的问题,可能的解决方案(多选)、源代码、结果截图、总结。

1.设计思想:

  设定三个变量,分别是max(子数组中的和的最大值,初始值为0)、result(当前子数组的和,初始值为0)、number(数组长度,初始值为0)。

  先让用户自己设定数组的长度,之后输入数组。从数组第一位开始遍历数组,result=result+当前数值,并判断:

      ①若result>max,则令max=result;

      ②若result<0,则result=0。

  最后当循环运行结束后,输出最后max的值。

2.出现的问题:

   若输入值均为负数,则无法正确输出结果。

3.可能的解决方案:

   在输入整个数组后,将max值赋值为a[0]。

4.源程序:

 1 package text;
 2
 3 import java.util.*;
 4 public class MaxResult
 5 {
 6     public static void main(String args[])
 7     {
 8         int max=0,number=0,result=0;
 9         Scanner in=new Scanner(System.in);
10         System.out.print("请输入需要的数组长度:");
11         number=in.nextInt();
12
13         int a[]=new int [number];
14
15         System.out.print("请输入一个长度为"+number+"的数组(输入范围:自然数):");
16         for(int i=0;i<number;i++)
17         {
18             a[i]=in.nextInt();
19         }
20
21         max=a[0];
22
23         for(int i=0;i<number;i++)
24         {
25             result=result+a[i];
26
27             if(result>max)
28             {
29                 max=result;
30             }
31             if(result<0)
32             {
33                 result=0;
34             }
35         }
36
37         System.out.println("该数组中相邻的元素所组成的子集的和中,最大值为:"+max);
38     }
39 }

5.结果截图:

6.总结

在时间复杂度限制的情况下,尽可能使用简单的方法去完成题目要求,在每一次循环中要把各种情况全都考虑到,充分利用每次一循环,这一点至关重要。

转载于:https://www.cnblogs.com/Daddy/p/5359941.html

课堂练习——返回一个整数数组中最大子数组的和相关推荐

  1. 软工 课堂作业:选出一个整数组中最大子数组

    项目计划日志       10.6 看ppt,熟悉内容.       10.6下午,开始编程调试.       10.7 运行调试,写博客.                   时间记录日志 日期 开 ...

  2. 结对开发——返回一个整数数组中最大子数组的和 (首尾相接版)

    一.题目及题目要求 题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果 ...

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

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

  4. 返回一个首尾相接的二维整数数组中最大子数组的和

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

  5. 返回一个二维整数数组中最大子数组的和(二人结对)

    题目:返回一个二维整数数组中最大子数组的和 要求:1.输入一个二维整型数组,数组里有正数也有负数. 2.二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. 3.求所有子数组的和的最大值. ...

  6. 返回一个整数数组中最大子数组的和---环形数组

    一.题目要求 题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 如果数组A[0]--A[j- ...

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

    题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整型数组,数组里有正数也有负数: 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 求所有子数组的和的最大值.要求时间复杂度为 ...

  8. 返回一个整数数组中最大子数组的和。

    一.要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果数组A[0]--A[j-1]首尾相邻,允许A[i-1],. ...

  9. 返回一个循环数组中最大子数组的和

    设计思路 首先利用rand()函数随机产生一个一维数组,数组长度通过宏定义来控制.求首尾连接的一维数组的最大子数组的和我的思路是:循环N次(N是数组的长度)依次检测数组的最大子数组的和再比较大小,保留 ...

  10. 求二维整数数组中最大子数组的和(结对作业)

    题目:返回一个二维整数数组中最大子数组的和 要求:(1)输入一个二维整形数组,数组里有正数也有负数. (2)二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. (3)求所有子数组的和最大 ...

最新文章

  1. RHCS配置web高可用集群
  2. 三大电机控制方案之DSP篇(1):TMS320F28335
  3. 图文:关于进程与线程,我看过最通俗的解释!
  4. 记录一次HBase的scan的分页查询
  5. 设计 Pastebin.com
  6. 音响白噪音测试软件,如何获取白噪音_音箱_音频新闻-中关村在线
  7. java计算机毕业设计民宿运营管理网站源码+mysql数据库+系统+lw文档+部署
  8. oracle数据库中的同义词,Oracle创建数据库同义词
  9. Win11 开机资源管理器频繁崩溃闪退怎么处理?
  10. android 涨潮动画加载_这是迪士尼动画片《长发公主》中王国的原型,涨潮时才浮出海面...
  11. 【今日CV 计算机视觉论文速览 第133期】Wed, 19 Jun 2019
  12. SQL Server - 设置主键自增
  13. 全概率公式与贝叶斯公式-机器学习
  14. C-V2X在国内车路协同的应用
  15. DDR3和DDR4内存有什么区别?DDR3和DDR4的区别
  16. 第一章 3ds Max基础界面和操作
  17. 数字抽奖小程序_如何利用小程序玩转抽奖活动?
  18. riak教程 java_riak-java-client
  19. 微信小程序类快递自动填写收发货地址功能
  20. CSS系列之文本换行

热门文章

  1. kubernetes docker Secret
  2. rocketmq 两个线程同时消费一个消息
  3. Tomcat历史版本下载
  4. 获取单个数据库的邮箱数量
  5. ThreadLocal类及常用的线程安全类探究
  6. Kohana - PHP5框架 - 我看过的开源框架
  7. Autocompletetextview width fill parent问题
  8. [2018.10.11 T3] 欠钱
  9. BZOJ2118[国家集训队] 墨墨的等式
  10. java webview事件_捕获“页面已完成加载”事件,并使用xwalk Webview在ionic / cordova MainActivity.java中进行操作...