(1)动态规划
class Solution {
public:
int maximalSquare(vector<vector<char>>& m) {
int a=m.size(),b=m[0].size();
vector<vector<int>> v(a,vector<int>(b,0));
int max_=0;
for(int i=0;i<a;i++) {
for(int j=0;j<b;j++) {
if(i==0 || j==0) {
if(m[i][j]=='1') v[i][j]=1;
} else if(m[i][j]=='1') {
v[i][j]=min(min(v[i][j-1],v[i-1][j]),v[i-1][j-1])+1;
}
max_=max(max_,v[i][j]);
}
}
return max_*max_;
}
};