课堂练习四
2016-04-13 07:44
204 查看
设计思路:
①申请一个len长度的数组arr和len长度的最大和数组maxsum。
②用两个for循环嵌套,外面的for循环决定数组中开始计算的首位置,内部的for循环进行子数组最大和的运算,和大于maxsum就替换maxsum的值,小于0,则归零。
③在内部for循环中加入成环思路,判断j的值是否循环到数组的最后一个值,如果循环到最后一个值将-1赋给j,所以j就会从-1开始+1循环,直到j=i-1处停止。
④计算程序完成之后将得到的maxsum[i]的值进行比较,for循环选出最大值即可。
源程序代码
结果截图:
![](https://images2015.cnblogs.com/blog/763197/201604/763197-20160413203017738-219512521.jpg)
工作照:
![](https://images2015.cnblogs.com/blog/763197/201604/763197-20160413203050004-2000510882.jpg)
合作过程及体会:
在做之前我们先各自思考办法,我开始在想可以将数组变成两个数组,相当于算两遍就跟成环是一样的,但是搭档就说出了如果全是正数的话结果就不对了,果断放弃。搭档提出了两个for循环嵌套的成环方法,觉得是很合理,在编译过程中出现了一些不细心的小错误,搭档也帮找出来了。本人编程技术次于搭档,所以在合作过程中有很多要向搭档学习的地方,两个人互帮互助,效率也提高了不少,也体现出合作的重要性。
①申请一个len长度的数组arr和len长度的最大和数组maxsum。
②用两个for循环嵌套,外面的for循环决定数组中开始计算的首位置,内部的for循环进行子数组最大和的运算,和大于maxsum就替换maxsum的值,小于0,则归零。
③在内部for循环中加入成环思路,判断j的值是否循环到数组的最后一个值,如果循环到最后一个值将-1赋给j,所以j就会从-1开始+1循环,直到j=i-1处停止。
④计算程序完成之后将得到的maxsum[i]的值进行比较,for循环选出最大值即可。
源程序代码
package subarraymaxadd; import java.util.*; public class Subarraymaxadd { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入数组长度:"); int len = input.nextInt(); int[] arr = new int[len]; int[] maxsum = new int[len]; System.out.println("请输入数组:"); for(int i=0;i<len;i++) { arr[i] = input.nextInt(); } input.close(); for(int i=0;i<len;i++) { maxsum[i] = arr[i]; int sum = 0; for(int j=i;j<len;j++) { sum =sum + arr[j]; if(sum>maxsum[i]) { maxsum[i]=sum; } if(sum<0) { sum=0; } if(j==len-1)//此处两个if语句为成环部分 { j=-1; } if(j==i-1) { break; } } } int sum=0; sum = maxsum[0]; for(int i=1;i<len;i++) { if(sum<maxsum[i]) { sum=maxsum[i]; } } System.out.println("子数组的最大和为:"+sum); } }
结果截图:
![](https://images2015.cnblogs.com/blog/763197/201604/763197-20160413203017738-219512521.jpg)
工作照:
![](https://images2015.cnblogs.com/blog/763197/201604/763197-20160413203050004-2000510882.jpg)
合作过程及体会:
在做之前我们先各自思考办法,我开始在想可以将数组变成两个数组,相当于算两遍就跟成环是一样的,但是搭档就说出了如果全是正数的话结果就不对了,果断放弃。搭档提出了两个for循环嵌套的成环方法,觉得是很合理,在编译过程中出现了一些不细心的小错误,搭档也帮找出来了。本人编程技术次于搭档,所以在合作过程中有很多要向搭档学习的地方,两个人互帮互助,效率也提高了不少,也体现出合作的重要性。
相关文章推荐
- c#与oracle数据库连接池
- 开发环境与运行环境需求
- net平台下连接池
- C++ —— RAII编程思想
- C++ —— RAII编程思想
- 处理器MMU的作用
- mysql--用脚本实现分库分表备份
- LeetCode #3 Longest Substring Without Repeating Characters C# Solution
- python 之tornado 入门
- 单例模式
- IT忍者神龟之MysqlDATE_FORMAT函数的作用
- Openlayers2卷帘功能的实现
- Openlayers2卷帘功能的实现
- HTML5简介&视频&音频&拖放&画布&SVG
- 《java作业》
- 冒泡排序
- js实现击购物物品抛物线到购物车
- Spring配置文件中别名的使用
- TransE论文第2节:翻译模型
- 第二篇 Entity Framework Plus 之 Query Future