返回一个整数数组中最大子数组的和02
2016-04-13 12:42
211 查看
1.设计思想
(1)首先创建一个一维数组a[],根据用户输入的数组长度及数组内容进行存储数据。
(2)再定义几个变量,sum用于求和,max为和最大值,num为数组长度。
(3)开始for循环,sum初始化为0,max初始化为a[0]。循环内容为sum+=a[i];如果sum比max大则将sum值赋给max,如果sum小于0,则定义sum=0。直至循环结束,得到最大子数组的和。
(4)寻找a数组最小值,得到其下标j,将j值赋给t。创建数组b,进行两次循环,第一次循环i=0,每循环一次j值就增加1,b[i]=a[j],当j>=num时,第一次循环结束。进行第二次循环,令sum=0,j=0。每循环一次j值就增加1,b[i]=a[j],当j>=t时,循环结束,便成环。
(5)开始for循环,sum初始化为0,max为未成环之前得到的最大值。循环内容为sum+=b[i];如果sum比max大则将sum值赋给max,如果sum小于0,则定义sum=0。直至循环结束,得到最大子数组的和。
2。源程序代码
View Code
(1)首先创建一个一维数组a[],根据用户输入的数组长度及数组内容进行存储数据。
(2)再定义几个变量,sum用于求和,max为和最大值,num为数组长度。
(3)开始for循环,sum初始化为0,max初始化为a[0]。循环内容为sum+=a[i];如果sum比max大则将sum值赋给max,如果sum小于0,则定义sum=0。直至循环结束,得到最大子数组的和。
(4)寻找a数组最小值,得到其下标j,将j值赋给t。创建数组b,进行两次循环,第一次循环i=0,每循环一次j值就增加1,b[i]=a[j],当j>=num时,第一次循环结束。进行第二次循环,令sum=0,j=0。每循环一次j值就增加1,b[i]=a[j],当j>=t时,循环结束,便成环。
(5)开始for循环,sum初始化为0,max为未成环之前得到的最大值。循环内容为sum+=b[i];如果sum比max大则将sum值赋给max,如果sum小于0,则定义sum=0。直至循环结束,得到最大子数组的和。
2。源程序代码
package shuzu; import java.util.Scanner; public class DongTai01 { public static void main(String args[]) { Scanner num = new Scanner(System.in); System.out.println("请输入数组的长度"); int a = num.nextInt(); int shu = a; int[][] shuzu = new int[shu][2]; Scanner sca = new Scanner(System.in); System.out.println("请输入" + shu + "以内个整数"); for(int i = 0;i < shu-1;i++) { shuzu[i][0] = sca.nextInt(); System.out.println("你已经输入" + (i +1) + "个数" + ",还有"+(shu -i -1)+"个数"); if(i == shu-2) { break; } } shuzu[shu-1][0] = shuzu[0][0]; for(int z = 0;z <shu;z++) { System.out.println(shuzu[z][0] ); } shuzu[0][1]=shuzu[0][0]; for(int i = 1;i < shu;i++) { if(shuzu[i-1][1]<0) { shuzu[i][1]=shuzu[i][0]; } if(shuzu[i-1][1]>=0) { shuzu[i][1] = shuzu[i-1][1]+shuzu[i][0]; } } int max=shuzu[0][1]; for(int i=0;i<shu;i++) /*{ if(shuzu[i][1]>=max) { max=shuzu[i][1]; } } */ // System.out.println("最大和为"+max); System.out.println("各个子数组最大"+shuzu[i][1]); } }
View Code
相关文章推荐
- 控制反转(IoC)与依赖注入(DI)
- HTML5在移动端开发的12大特性
- 从 n 个数字中选出 m 个不同的数字,保证这 m 个数字是等概率的
- hadoop2.6.0入门及其集群搭建
- Android开发 debug的使用
- GreenDAO 使用简介
- Java面试题:栈和队列的实现
- POJ 1651 Multiplication Puzzle(区间dp)
- IDEA UL pom.xml报错,加载不了maven依赖库
- iOS开发问题集锦
- Android一个ListView列表之中插入两种不同的数据
- 查询字符串中字母出现的个数
- 第六周项目2-带武器的游戏角色
- Special equations(数学筛)
- 一个数组实现两个栈
- hadoop1.2.1入门及集群搭建
- MeasureSpec学习
- 配置tomcat
- ScrollView嵌套ListView(GridView同理)
- c语言字符串函数总结(超级全)