zoukankan      html  css  js  c++  java
  • 二维数组子数组最大和

    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++)
                {
              sum=0;
    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嵌套也是小菜一碟。

  • 相关阅读:
    how to pass a Javabean to server In Model2 architecture.
    What is the Web Appliation Archive, abbreviation is "WAR"
    Understaning Javascript OO
    Genetic Fraud
    poj 3211 Washing Clothes
    poj 2385 Apple Catching
    Magic Star
    关于memset的用法几点
    c++ 函数
    zoj 2972 Hurdles of 110m
  • 原文地址:https://www.cnblogs.com/feifeishi/p/4429077.html
Copyright © 2011-2022 走看看