• 返回一个二维数组中最大联通子数组的和


     

    import java.util.*; 

     public class Tarray { 

           static Scanner scanner = new Scanner(System.in); 

     public static void main(String args[]){ 

     int m,n; 

     int b; 

     Scanner scanner = new Scanner(System.in); 

     System.out.println("二维数组的列数: ");

     m = scanner.nextInt(); 

     System.out.println("二维数组的行数:"); 

     n = scanner.nextInt(); 

     int arr[][] = new int[n][m]; 

     System.out.println("请输入二位数组:"); 

     for(int i = 0;i<n;i++) 

     for(int j=0;j<m;j++) 

     { 

     arr[i][j] = scanner.nextInt(); 

                         } 

                  System.out.println(" "); 

     b = maxArrSum(arr); 

     System.out.println("最大联通数组的最大和为"+b); 

     } 

     public static int[][] arrSum(int arr[][]){ 

     int m = arr.length; 

     int n = arr[0].length; 

     int p[][] = new int[m+1][n+1]; 

     p[0][0] = arr[0][0]; 

     for(int i=0; i<=m; i++) p[i][0] = 0; 

     for(int i=0; i<=n; i++) p[0][i] = 0; 

     for(int i=1; i<=m; i++){ 

     for(int j=1; j<=n; j++){ 

     p[i][j] = p[i-1][j] + p[i][j-1] + arr[i-1][j-1] - p[i-1][j-1]; 

     } 

     } 

     return p; 

     } 

     //遍历所有二维数组的矩形区域 

     static int maxArrSum(int arr[][]){ 

     int m = arr.length; 

     int n = arr[0].length; 

     int p[][] = arrSum(arr); 

     int ans = Integer.MIN_VALUE; 

     for(int i=1; i<=m; i++){ 

     for(int j=1; j<=n; j++){ 

     for(int endi=i; endi <=m; endi++){ 

     for(int endj=j; endj<=n; endj++){ 

     int sum = p[endi][endj] - p[i-1][endj] - p[endi][j-1] + p[i-1][j-1]; 

     if(ans < sum) ans = sum; 

     } 

     } 

     } 

     } 

     return ans; 

     } 

     }

  • 相关阅读:
    iOS ----------各种判断
    iOS----------常见宏定义
    iOS-----------进阶书籍收藏
    iOS----------YYModel
    Mac 系统占用100g的解决办法
    MAC终端常用语法
    iOS----------网络请求错误
    【2020Python修炼记】前端开发之 CSS基础和CSS选择器
    【2020Python修炼记】前端开发之 HTML常用标签汇总
    【教程干货】前端学习网站·资源
  • 原文地址:https://www.cnblogs.com/zhaochenguang/p/8301361.html
Copyright © 2020-2023  润新知