课后作业(求最大数组)
2016-04-08 20:24
246 查看
思路:
设定三个变量,result分别是(子数组中的和的最大值,初始值为array[0])、result(当前子数组的和,初始值为array[0]);
先让用户自己设定数组的长度,之后输入数组。从数组第一位开始遍历数组, max=max+array[i],若result<0,则令max=0;若max>result,则result=max;最后当循环运行结束后,输出最后result的值。
问题
计算结果时for循环起始值应从1开始,若从0起始的话会多算一遍数组array[0];
截图:
设定三个变量,result分别是(子数组中的和的最大值,初始值为array[0])、result(当前子数组的和,初始值为array[0]);
先让用户自己设定数组的长度,之后输入数组。从数组第一位开始遍历数组, max=max+array[i],若result<0,则令max=0;若max>result,则result=max;最后当循环运行结束后,输出最后result的值。
问题
计算结果时for循环起始值应从1开始,若从0起始的话会多算一遍数组array[0];
package shuzhi; import java.util.Scanner; public class shuzuzhi { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); System.out.println("请输入数组长度:"); int n=in.nextInt(); int array[]=new int ; System.out.println("请输入相应的整数:"); for(int i=0;i<n;i++) { array[i]=in.nextInt(); } int max=array[0]; int result =array[0]; for(int i=1;i<n;i++) { max=max+array[i]; if(max<0) { max=0; } if(max>result) { result=max; } } System.out.print("子数组的最大值为:"+result); } }
截图:
相关文章推荐
- Sorting It All Out 拓扑排序+确定点
- FFmpeg深入分析之零-基础
- poj-1936-All in All
- Javascript诞生记-C和Self语言的产物
- 1112. Stucked Keyboard (20) hash
- 用C++编写小学生随机十道练习题的步骤以及源代码
- Java并发编程:阻塞队列
- POJ 3592 缩点加spfa
- 【蓝桥杯】历届试题 公式求值
- Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1
- CI 笔记(1)
- 【摘自乌云】内网渗透笔记
- 软件工程需求分析
- mysql索引提高优化order by语句用法介绍
- 【bzoj3124】: [Sdoi2013]直径
- JS函数名加括号和不加括号的区别
- 七层协议入门
- 字符串运用-密码截取(华为oj)
- 汉堡--结对--软件工程
- LeetCode 28 Implement strStr()