首页 > 其他 > 详细

最大子矩阵和问题dp

时间:2019-03-09 23:46:04      阅读:184      评论:0      收藏:0      [点我收藏+]

给定一个矩阵 matrix,其中矩阵中的元素可以包含正数、负数、和0,返回子矩阵的最大累加和。例如,矩阵 matrix 为:
0 -2 -7 0
9 2 -6 2
-4 1 -4 1
-1 8 0 -2
拥有最大和的子矩阵为:
9 2
-4 1
-1 8
其和为15。
 

package demo2;


import java.util.*;
public class Main1{
  
    public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            int matrix[][]={{0,-2,-7,0 },{9 ,2 ,-6 ,2},{-4,1,-4,1},{-1,8,0,-2}};
            maxSum(matrix);
    
    }     
    public static void maxSum(int [][]m){
        if(m.length==0||m==null)
            return;
        int max=0;
        int col=m[0].length;
        int row= m.length;
        for(int i=0;i<row;i++){
            int []arr = new int[col];
//            Arrays.fill(arr, 0);
            for(int j=i;j<row;j++){
                for(int k=0;k<col;k++){
                    arr[k]+=m[j][k];
                }
                max = Math.max(maxSum(arr), max);
            }
        }
        System.out.println(max);
    }
     public static int maxSum(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;
     }
      
    
        }

 

最大子矩阵和问题dp

原文:https://www.cnblogs.com/ls-pankong/p/10503687.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!