221. 最大正方形
注意边界条件,dp申请数组从n+1,m+1,从1遍历到n可以避免边界条件的判断
class Solution {
public:
int maximalSquare(vector<vector<char>>& matrix) {
int n=matrix.size();
if(!n)return 0;
int m=matrix[0].size();
int dp[n+1][m+1];
memset(dp,0,sizeof dp);
int mlen=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(matrix[i-1][j-1]-'0')
dp[i][j]=min({dp[i-1][j],dp[i][j-1],dp[i-1][j-1]})+1;
mlen=max(mlen,dp[i][j]);
}
}
return mlen*mlen;
}
};