zoukankan      html  css  js  c++  java
  • 二维数组

    求二维数组的子数组和的最大值,首先创建一个二维数组,考虑到输入数值是的简便,我自定义二维函数的行和列,用随机函数随机产生一个二维数组。首先第一二层循环求出第一行数组所有从第一个值开始的子数组的和,如果和为负数,则令和等于零再加下一个数,以此方法求出最大值;在外层循环中有参数n使数组前n行数组再求出所有从第一列开始的子数组的和,如果和为负数,则令和等于零再加下一个数,以此方法求出最大值。然后第三层循环求出后边所有行数组所有从第一个值开始的和的最大值。第四层循环是从第一行开始求出所有行的子数组和的最大值。代码如下:

    package 数组4;
    
    import java.util.Random;
    import java.util.Scanner;
    
    public class shuzu4 {
    
        public static void main(String[] args) {
            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(11);
                    a[i][j]=a[i][j]-1;
                    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("");            
        }
    }
  • 相关阅读:
    Spring的注解配置与XML配置之间的比较
    为何注释中要加入注解
    语法的二义性和token的超前扫描
    基于EBNF语法的描述
    JavaCC从入门到出门
    Golang 微信机器人包
    Golang 笔记 5 go语句
    Golang 笔记 4 defer、error、panic
    Golang 笔记 3 if、switch、for、select语句
    Golang 笔记 2 函数、结构体、接口、指针
  • 原文地址:https://www.cnblogs.com/yuanxiaochou/p/10590610.html
Copyright © 2011-2022 走看看