zoukankan      html  css  js  c++  java
  • 最大子矩阵和问题dp

    给定一个矩阵 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;
         }
          
        
            }
  • 相关阅读:
    MS-DOS命令
    寻找一条通过迷宫的路径
    linux文件基本操作和常用命令
    网络基础
    计算机基础---操作系统
    GIT 使用
    计算机基础
    秒角士网站
    咖啡项目
    winfrom面向对象1
  • 原文地址:https://www.cnblogs.com/ls-pankong/p/10503687.html
Copyright © 2011-2022 走看看