标签:覆盖 二维矩阵 etc https uri class rdp str return
在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。
示例:
输入:
1 0 1 0 0
1 0 1 1 1
1 1 1 1 1
1 0 0 1 0
输出: 4
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximal-square
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public int maximalSquare(char[][] matrix) {
if (matrix == null || matrix.length == 0) { //
return 0;
}
int rows = matrix.length;
int cols = matrix[0].length;
int[] preDp = new int[cols + 1];
int[] curDp = new int[cols + 1];
int maxLen = 0;
for (int i = 1; i <= rows; ++i) {
for (int j = 1; j <= cols; ++j) {
if (matrix[i - 1][j - 1] == '1') {
curDp[j] = 1 + Math.min(preDp[j - 1], Math.min(preDp[j], curDp[j - 1]));
if (curDp[j] > maxLen) {
maxLen = curDp[j];
}
}
}
for (int j = 1; j <= cols; ++j) {// 更新两个dp数组
preDp[j] = curDp[j];
curDp[j] = 0;
}
}
return maxLen * maxLen;
}
}
标签:覆盖 二维矩阵 etc https uri class rdp str return
原文地址:https://www.cnblogs.com/coding-gaga/p/11741284.html