• 二维数组


    要求:

     

    程序要使用的数组放在一个叫 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方法,首先将第一行看作是一个一维数组,得到其最大子数组,这个最大子数组便是目前的最大子矩形。

  • 相关阅读:
    HTML5-MathML-基础篇
    HTML5-SVG-基础篇
    HTML5-canvas-基础篇
    HTML基础
    套接字缓存之skb_clone、pskb_copy、skb_copy
    套接字缓存之alloc_skb、dev_alloc_skb、kfree_skb、dev_kfree_skb、consume_skb
    套接字缓存之skb_put、skb_push、skb_pull、skb_reserve
    套接字缓存之sk_buff结构
    网络设备之监测连接状态
    网络设备之关闭
  • 原文地址:https://www.cnblogs.com/xcl666/p/11071262.html
Copyright © 2020-2023  润新知