在一个由 '0' 和 '1' 组成的二维矩阵内,找到只包含 '1' 的最大正方形,并返回其面积。
知识点动态规划,创建二维数组的方式
C++ 动态规划C++定义vector二维数组 vector
> dp(row, vector (column));
class Solution {
public:
int maximalSquare(vector>& matrix) {
int row=matrix.size();
int column=matrix[0].size();
if(row==0||column==0) return 0;
int maxSide=0;
vector> dp(row, vector(column));
for (int i = 0; i < row; i++) {
for (int j = 0; j < column; j++) {
if (matrix[i][j] == '1') {
if (i == 0 || j == 0) dp[i][j]= 1;
else {
dp[i][j] = min(min(dp[i - 1][j - 1], dp[i - 1][j]), dp[i][j - 1]) + 1;
}
}
maxSide = max(dp[i][j], maxSide);
}
}
return maxSide * maxSide;
}
};



