1,全为1的最大正方形
在一个由
'0'
和'1'
组成的二维矩阵内,找到只包含'1'
的最大正方形,并返回其面积。
来源:221. 最大正方形
解题思路:
dp[i][j]表示以matrix[i][j]为右下角的全1的正方形的最大边长。
很明显,当matrix[i][j]==0时,dp[i][j]=0;
当matrix[i][j]==1时,dp[i][j]的值为左上、上、左3个节点的最小值+1,即dp[i][j] = min{dp[i-1][j-1], dp[i-1][j], dp[i][j-1]}+1。
class Solution {
public:
int maximalSquare(vector<vector<char>>& matrix) {
int m = matrix.size(), n = matrix[0].size();
vector<vector<int>> dp(m, vector<int>(n));
int result = 0;
for (int i = 0; i &