课堂练习——返回一个整数数组中最大子数组的和
题目要求:返回一个整数数组中最大子数组的和
具体要求:输入一个整形数组,数组里有正数也有负数;
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和;
求所有子数组的和的最大值。要求时间复杂度为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)求所有子数组的和最大 ...
最新文章
- javascript与java的不同之处
- 解决Tomcat v8.0 Server at localhost failed to start.
- 端计算(9)-android opencv(1)
- 电力负荷事件划分(有代码)
- 一个被遗忘的ccflow工作流引擎自定义表单开发模式
- win7怎么运行linux,win7系统运行linux shell脚本的操作方法
- vue 使用 el-image图片无法显示
- AIX 6.1安装JDK6环境变量设置
- 循序渐进学好编程,不要太急!!!
- attention机制的几种方法
- CString.Format详解【摘录】
- 云计算时代的DCI技术
- 51单片机项目教程c语言版,51单片机项目教程(C语言版)
- IOTOS物联中台对接海康安防平台(iSecure Center)门禁系统
- Elasticsearch创建索引
- 买房的疯了-开发商笑不起来了
- (含Matlab源码)算术编码(arithmetic coding)的underflow问题
- java模拟器环境_Win10 + Appium+夜神/MuMu模拟器环境搭建
- 递归皮质网络RCN简单理解
- 2022年全球及中国公共安全无线通信系统行业头部企业市场占有率及排名调研报告