艾恩凝
个人博客 https://aeneag.xyz/
不知不觉,十月过去三分之一了,每日一题
题目
https://leetcode-cn.com/problems/maximal-square/submissions/
题解
class Solution {
public:
int maximalSquare(vector<vector<char>>& matrix) {
int row = matrix.size(),col = matrix[0].size(),res = 0;
if(!row || !col)return 0;
vector<vector<int>> dp(row,vector<int>(col,0));
for(int i = 0 ; i < row ; ++i){
for(int j = 0 ; j < col ; ++j){
if(matrix[i][j] == '1'){
if(!i || !j){
dp[i][j] = 1;
}else{
dp[i][j] = min(dp[i][j-1],min(dp[i-1][j],dp[i-1][j-1]))+1;
}
res = max(res,dp[i][j]);
}
}
}
return res*res;
}
};
题目分析
这个题用暴力法很容易解决,想不到用动态规划,用这个太简单了,写代码容易,想办法难