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

    要求:

     

    程序要使用的数组放在一个叫 input.txt 的文件中, 文件格式是:

    数组的行数,

    数组的列数,

    每一行的元素, (用逗号分开)

    每一个数字都是有符号32位整数,当然,行数和列数都是正整数。

    代码:

    package www;

    public class erweishuzu {

        public static void main(String[] args) {
            // TODO Auto-generated method stub
             int matrix[][]={{1,-2,3},{-4,5,6},{-7,8,-9}};
                maxSum(matrix);
        }
         public static void maxSum(int matrix[][])
            {
                if(matrix==null||matrix.length==0)
                    return;
                int max=0;
                int col=matrix[0].length,row=matrix.length;     
                for(int i=0;i<row;i++)
                {
                    int arr[]=new int[col];
                    for(int j=i;j<row;j++)
                    {
                    //遍历所有的子行
                        for(int k=0;k<col;k++)
                        {
                            arr[k]+=matrix[j][k];
                            //将每子行的值进行相加然后利用子数组的最大和就可以求出子矩阵的最大和
                        }
                        for(int l=0;l<col;l++) {
                         System.out.print(arr[l]+" ");
                         if((l+1)%3==0) {
                         System.out.println();
                         }
                        }
                        max=Math.max(max(arr), max);
                        System.out.println("max为:"+max);
                        //求出数组的子数组和最大值
                    }
                }
                System.out.println("最后得到的最大值为:"+max);
            }
            public static int max(int arr[])//求最大子数组之和
            {
                int max=0,sum=0;
                for(int i=0;i<arr.length;i++)
                {
                    if(sum<=0)
                    {
                        sum=arr[i];
                    }
                    else {
                        sum+=arr[i];
                    }
                    max=Math.max(sum, max);
                }
                return max;
            }
    }

    运行截图如下:

    总结:max方法,功能是计算出一个一维数组的最大子数组之和,maxsum方法,首先将第一行看作是一个一维数组,得到其最大子数组,这个最大子数组便是目前的最大子矩形。

  • 相关阅读:
    oracleDBA-D4
    oracleDBA-D3
    oracleDBA-D2
    大数据架构学习记录
    UBUNTU 安装最新版 nodejs
    datax 单条记录超过大小限制,当前限制为:67108864
    将anaconda中已存在的虚拟环境增加到jupyterlab
    jupyter 启动python3 内核 总是出现错误 ImportError: cannot import name 'create_prompt_application'
    CDH 本地hadoop支持读写 AWS S3a
    hadoop 集群集成jupyterhub 出现的问题
  • 原文地址:https://www.cnblogs.com/xcl666/p/11071262.html
Copyright © 2011-2022 走看看