classSolution { public: intmaximalSquare(vector<vector<char>>& matrix){ int m = matrix.size(), n = matrix[0].size(); if (m < 1 || n < 1) return0; int res = 0;
vector<vector<int>> dp(m+1, vector<int>(n+1, 0)); for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { if (matrix[i][j] == '1') { dp[i+1][j+1] = min({dp[i+1][j], dp[i][j+1], dp[i][j]}) + 1; res = max(dp[i+1][j+1], res); } } } return res * res; } };