最大子方阵
来源:互联网 发布:丹尼斯约翰逊数据 编辑:程序博客网 时间:2024/06/02 18:35
package 最大子方阵;/** * Created by h on 16-12-18. */public class Solution { public int maxSubMatrix(int[][] mat, int n) { int[][] right = new int[n][n]; int[][] down = new int[n][n]; //时间复杂度O(n3) int type = 1; preProcess(mat, right, down, n, type); int[] ans = new int[1]; ans[0] = 0; dp(ans, right, down, n); type = 0; preProcess(mat, right, down, n, type); dp(ans, right, down, n); return ans[0]; } private void dp(int[] ans, int[][] right, int[][] down, int n) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { int maxNum = Math.min(right[i][j], down[i][j]); for (int k = maxNum; k > 0; k--) { if (down[i][j + k - 1] >= k && right[i + k - 1][j] >= k) { ans[0] = Math.max(k, ans[0]); break; } } } } } private void preProcess(int[][] mat, int[][] right, int[][] down, int n, int type) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { right[i][j] = 0; down[i][j] = 0; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { for (int k = j; k < n; k++) { if (mat[i][k] == type) { right[i][j]++; } else { break; } } for (int k = i; k < n; k++) { if (mat[k][j] == type) { down[i][j]++; } else { break; } } } } } public static void main(String[] args) { int[][] mat = { {0, 1, 1, 1, 1}, {0, 1, 0, 0, 1}, {0, 1, 0, 0, 1}, {0, 1, 1, 1, 1}, {0, 1, 0, 1, 1} }; int n = mat.length; System.out.println(new Solution().maxSubMatrix(mat, n)); }}
0 0
- 最大子方阵
- [编程题]最大子方阵
- FAFU-1043 最大和谐子方阵 DP
- Java实验(5) 最大子方阵
- 四条边为黑色元素的最大子方阵
- 程序员面试金典——最大子方阵问题:找到四条边颜色相同的最大子方阵
- 找最大方阵
- 方阵中的最大乘积
- hdu(2859)最大对称方阵
- 程序员面试金典——解题总结: 9.18高难度题 18.11给定一个方阵,其中每个单元(像素)非黑即白。设计一个算法,找出四条边都是黑色像素的最大子方阵。
- 方阵
- 最大子串,最大子回文
- 最大子段 ,最大子矩阵 算法
- 最大子序列和最大子矩阵
- 最大子段和 最大子矩阵
- 最大子矩阵(最大子序列变形)
- 最大子串匹配
- 最大子序列
- 1138
- vmware中hadoop的linux环境集群配置环境准备
- LeetCode笔记:125. Valid Palindrome
- 原型模式(创建类)
- 关于 tomcat 集群中 session 共享的三种方法
- 最大子方阵
- LDD之中断
- 数据结构与算法(C语言版)__冒泡排序
- 【解决】java.net.BindException: Address already in use: JVM_Bind
- 1116. Come on! Let's C (20)
- 使用hive来分析flume收集的日志数据
- 1162
- Out of memory on a 14745616-byte allocation.+Bitmap的内存优化
- 深入理解Express.js