课堂练习——返回一个整数数组中最大子数组的和
题目要求:返回一个整数数组中最大子数组的和
具体要求:输入一个整形数组,数组里有正数也有负数;
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和;
求所有子数组的和的最大值。要求时间复杂度为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
课堂练习——返回一个整数数组中最大子数组的和相关推荐
- 软工 课堂作业:选出一个整数组中最大子数组
项目计划日志 10.6 看ppt,熟悉内容. 10.6下午,开始编程调试. 10.7 运行调试,写博客. 时间记录日志 日期 开 ...
- 结对开发——返回一个整数数组中最大子数组的和 (首尾相接版)
一.题目及题目要求 题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果 ...
- 课堂练习:返回一个二维数组中最大子数组的和
1.题目: 返回一个二维数组中最大子数组的和. 2.要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子 ...
- 返回一个首尾相接的二维整数数组中最大子数组的和
题目: ·返回一个二维整数数组中最大子数组的和. 要求: ·输入一个二维整形数组,数组里有正数也有负数. ·二维数组首尾相接,象个一条首尾相接带子一样. ·数组中连续的一个或多个整数组成一个子数组,每 ...
- 返回一个二维整数数组中最大子数组的和(二人结对)
题目:返回一个二维整数数组中最大子数组的和 要求:1.输入一个二维整型数组,数组里有正数也有负数. 2.二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. 3.求所有子数组的和的最大值. ...
- 返回一个整数数组中最大子数组的和---环形数组
一.题目要求 题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 如果数组A[0]--A[j- ...
- 软件工程结对开发——返回一个整数数组中最大子数组的和(JAVA)
题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整型数组,数组里有正数也有负数: 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 求所有子数组的和的最大值.要求时间复杂度为 ...
- 返回一个整数数组中最大子数组的和。
一.要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果数组A[0]--A[j-1]首尾相邻,允许A[i-1],. ...
- 返回一个循环数组中最大子数组的和
设计思路 首先利用rand()函数随机产生一个一维数组,数组长度通过宏定义来控制.求首尾连接的一维数组的最大子数组的和我的思路是:循环N次(N是数组的长度)依次检测数组的最大子数组的和再比较大小,保留 ...
- 求二维整数数组中最大子数组的和(结对作业)
题目:返回一个二维整数数组中最大子数组的和 要求:(1)输入一个二维整形数组,数组里有正数也有负数. (2)二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. (3)求所有子数组的和最大 ...
最新文章
- RHCS配置web高可用集群
- 三大电机控制方案之DSP篇(1):TMS320F28335
- 图文:关于进程与线程,我看过最通俗的解释!
- 记录一次HBase的scan的分页查询
- 设计 Pastebin.com
- 音响白噪音测试软件,如何获取白噪音_音箱_音频新闻-中关村在线
- java计算机毕业设计民宿运营管理网站源码+mysql数据库+系统+lw文档+部署
- oracle数据库中的同义词,Oracle创建数据库同义词
- Win11 开机资源管理器频繁崩溃闪退怎么处理?
- android 涨潮动画加载_这是迪士尼动画片《长发公主》中王国的原型,涨潮时才浮出海面...
- 【今日CV 计算机视觉论文速览 第133期】Wed, 19 Jun 2019
- SQL Server - 设置主键自增
- 全概率公式与贝叶斯公式-机器学习
- C-V2X在国内车路协同的应用
- DDR3和DDR4内存有什么区别?DDR3和DDR4的区别
- 第一章 3ds Max基础界面和操作
- 数字抽奖小程序_如何利用小程序玩转抽奖活动?
- riak教程 java_riak-java-client
- 微信小程序类快递自动填写收发货地址功能
- CSS系列之文本换行
热门文章
- kubernetes docker Secret
- rocketmq 两个线程同时消费一个消息
- Tomcat历史版本下载
- 获取单个数据库的邮箱数量
- ThreadLocal类及常用的线程安全类探究
- Kohana - PHP5框架 - 我看过的开源框架
- Autocompletetextview width fill parent问题
- [2018.10.11 T3] 欠钱
- BZOJ2118[国家集训队] 墨墨的等式
- java webview事件_捕获“页面已完成加载”事件,并使用xwalk Webview在ionic / cordova MainActivity.java中进行操作...