思路展示 上面详解了 三者取最小的含义: 图 1:受限于左上的 0 图 2:受限于上边的 0 图 3:受限于左边的 0 数字表示:以此为正方形右下角的最大边长 黄色表示:格子 ? 作为右下角的正方形区域 示例代码 登录后复制 class Solution { public: int maximalSquare(vector<vector<char>>& matrix) { int m=matrix.size(),n=matrix[0].size(),max_side=0; vector<vector<int>> dp(m+1,vector<int>(n+1,0)); for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ if(matrix[i-1][j-1]=='1'){ dp[i][j]=min(dp[i-1][j-1],min(dp[i-1][j],dp[i][j-1]))+1; } max_side=max(max_side,dp[i][j]); } } return max_side*max_side; } }; 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17. 效果展示 原创作者: u_15305087 转载于: https://blog.51cto.com/u_15305087/11709056