class Solution {
public int maximalSquare(char[][] matrix) {
int n = matrix.length, m = matrix[0].length;
int[][] dp = new int[n+1][m+1];
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(matrix[i-1][j-1] == '1') dp[i][j] = 1;
}
}
int res = 0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(dp[i][j] != 0) dp[i][j] += Math.min(dp[i-1][j-1], Math.min(dp[i-1][j], dp[i][j-1]));
res = Math.max(res, dp[i][j]);
}
}
// for(int i=1;i<=n;i++){
// LinkedList<Integer> l = new LinkedList<>();
// for(int j=1;j<=m;j++){
// l.add(dp[i][j]);
// }System.out.println(l);
// }
return res*res;
}
}
221.最大正方形
最新推荐文章于 2024-09-01 11:38:54 发布