标签:
1.结组成员
张晨建、周盼超
2.实现功能
3.设计思路
我感觉,这应该是最笨的方法了吧,我们用了用了四个for嵌套。思路很简单:每一行每一行的求最大子数组和即看成n个一维子数组求最大子数组和,记录结果,然后把两行看做一行上下两个数相加,每两行两行求最大子数组和,然后三行,四行,n行。
4.完整代码
package 二维数组;
import java.util.Random;
import java.util.Scanner;
public class b {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[][];
int i,j,l,h,n,k,sum,max;
///随机产生一个数组
Scanner scanner = new Scanner(System.in);
System.out.print("输出随机产生的数组的长度:");
h=scanner.nextInt();
System.out.print("输出随机产生的数组的高度:");
l=scanner.nextInt();
scanner.close();
a=new int[l][h];
for(i=0;i<l;i++)
{
for(j=0;j<h;j++)
{
Random random = new Random();
a[i][j]=random.nextInt(19);
a[i][j]=a[i][j]-9;
System.out.print(a[i][j]);
System.out.print(" ");
}
System.out.println("");
}
max=0;
for(n=0;n<l;n++)
{
sum=0;
for(i=0;i<l-n;i++)
{
for(j=0;j<h;j++)
{
for(k=i;k<=i+n;k++)
{
sum=sum+a[k][j];
}
//System.out.print(sum);
//System.out.print(" ");
if(sum<0)
{
sum=0;
}
if(max<sum)
{
max=sum;
}
}
}
}
System.out.print(max);
System.out.println("");
}
}
5.运行结果截图

6.我的收获
此次实验,我们经过了思考、讨论、编程、测试。现在感觉思考阶段是最为要紧的,我们没有想出什么更好的办法,就用四个for这种笨法简单的实现了。但这次实验也有不小的收获,就是对for的使用更加熟悉了,四个for嵌套也是小菜一碟。
标签:
原文地址:http://www.cnblogs.com/zchenjian/p/4433887.html