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("");            
        }
    }
  • 相关阅读:
    引擎设计跟踪(九.10) Max插件更新,地形问题备忘
    引擎设计跟踪(九.9) 文件包系统(Game Package System)
    [原] Android上使用native IO
    [原] GLES在iOS和Android上的不同
    [原] perforce 获取本地最近更新的Changelist
    [转]GLES 3.0 新特性
    [原]android不支持命名的semaphore
    [原]android 链接错误
    引擎设计跟踪(九.8) Gizmo helper实现与多国语言
    [原]游戏引擎与游戏逻辑
  • 原文地址:https://www.cnblogs.com/yuanxiaochou/p/10590610.html
Copyright © 2011-2022 走看看