https://leetcode-cn.com/problems/maximal-square/
思路:dp
int maximalSquare(vector<vector<char>>& matrix) {
if (matrix.size() == 0) {
return 0;
}
vector<vector<int>> dp(matrix.size(),vector<int>(matrix[0].size(), 0));
int max_value = 0;
for (int i = 0; i < matrix.size(); i++) {
for (int j = 0; j < matrix[i].size(); j++) {
if (i == 0 || j == 0) {
if (matrix[i][j] == '1') {
dp[i][j] = 1;
}
max_value = max(max_value, dp[i][j]);
continue;
}
if (matrix[i][j] == '1') {
dp[i][j] = min(dp[i][j - 1], min(dp[i - 1][j], dp[i - 1][j - 1])) + 1;
}
max_value = max(max_value, dp[i][j]);
//cout << i << " " << j << " " << dp[i][j] << endl;
}
}
return max_value * max_value;
}