Maximal Square
来源:互联网 发布:js 时间格式化 编辑:程序博客网 时间:2024/04/27 23:01
Maximal Square
Given a 2D binary matrix filled with 0's and 1's, find the largest square containing all 1's and return its area.
For example, given the following matrix:
1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0Return 4.
Credits:
Special thanks to @Freezen for adding this problem and creating all test cases.
dp[i][j] = Math.min(dp[i-1][j-1], dp[i-1][j],dp[i][j-1]) + 1
public class Solution { public int maximalSquare(char[][] matrix) { if (matrix == null || matrix.length == 0) return 0; int row = matrix.length; int col = matrix[0].length; int[][] dp = new int[row][col]; for (int i = 0; i < row; i++) { dp[i][0] = Character.getNumericValue(matrix[i][0]); } for (int i = 0; i < col; i++) { dp[0][i] = Character.getNumericValue(matrix[0][i]); } for (int i = 1; i < row; i++) for (int j = 1; j < col; j++) { if (Character.getNumericValue(matrix[i][j]) == 1) { dp[i][j] = Math.min(dp[i - 1][j - 1], dp[i - 1][j]); dp[i][j] = Math.min(dp[i][j], dp[i][j - 1]); dp[i][j] += 1; } else { dp[i][j] = 0; } } int max = dp[0][0]; for (int i = 0; i < row; i++) for (int j = 0; j < col; j++) { if (dp[i][j] > max) max = dp[i][j]; } return max * max; }}
0 0
- Maximal Square
- Maximal Square
- Maximal Square
- Maximal Square
- Maximal Square
- Maximal Square
- Maximal Square
- Maximal Square
- Maximal Square
- Maximal Square
- Maximal Square
- Maximal Square
- Maximal Square
- Maximal Square
- Maximal Square
- Maximal Square
- Maximal Square
- Maximal Square
- 高斯判别分析算法及其python实现
- java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I`
- HDU 4408 最小生成树的个数
- hadoop平台优化
- 建立用户身份验证机制和个性化设置总结-会话(2)
- Maximal Square
- 顺序队列
- 链队列
- c语言变量和函数声明的修饰符static,extern,#define,const
- 编程一周感想
- 使用 HTML5 开发 WebApp 性能注意点
- C++ int与string的转化
- Uva - 401 - Palindromes
- 自定义UIView以实现自绘