221. Maximal Square
2016-04-08 03:55
375 查看
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:
Return 4.
DP solution
public int maximalSquare(char[][] matrix) {
if (matrix.length == 0)
return 0;
int m = matrix.length, n = matrix[0].length, result = 0;
int[][] b = new int[m + 1][n + 1];
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
if (matrix[i - 1][j - 1] == '1') {
b[i][j] = Math.min(Math.min(b[i][j - 1], b[i - 1][j - 1]), b[i - 1][j]) + 1;
result = Math.max(b[i][j], result); // update result
}
}
}
return result * result;
}
For example, given the following matrix:
1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0
Return 4.
DP solution
public int maximalSquare(char[][] matrix) {
if (matrix.length == 0)
return 0;
int m = matrix.length, n = matrix[0].length, result = 0;
int[][] b = new int[m + 1][n + 1];
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
if (matrix[i - 1][j - 1] == '1') {
b[i][j] = Math.min(Math.min(b[i][j - 1], b[i - 1][j - 1]), b[i - 1][j]) + 1;
result = Math.max(b[i][j], result); // update result
}
}
}
return result * result;
}
相关文章推荐
- WEB project部署EJB3
- JeeSite概述
- 三位数反转的两种方法
- HackerRank "Morgan and a String"
- web安全
- 观察者设计模式
- Python—sqlalchemy
- asp 为html控件添加服务器端事件
- Django REST framework教程一:序列化
- .Net转前端开发-启航篇,如何定制博客园主题
- DrawLayout 侧滑侧栏点击穿透
- iOS版本、iPhone版本、Xcode版本比对
- 【Swift学习】Swift编程之旅(一)
- poj3468 A Simple Problem with Integers[线段树成段更新成段查询]
- 看看什么是真正的瀑布流开发
- LeetCode 257 Binary Tree Paths
- 使用ListActivity
- iOS之多线程浅谈
- HackerRank "Favorite sequence"
- Intellij Idea 设置方法模板