首页 > 其他 > 详细

221. 最大正方形

时间:2020-04-11 19:19:02      阅读:54      评论:0      收藏:0      [点我收藏+]
 1 //dp(i, j)=min(dp(i−1, j), dp(i−1, j−1), dp(i, j−1))+1
 2 class Solution 
 3 {
 4 public:
 5     int maximalSquare(vector<vector<char>>& matrix) 
 6     {
 7         if(matrix.empty() || matrix[0].empty()) return 0;
 8         int m = matrix.size(),n = matrix[0].size();
 9         vector<vector<int>> dp(m,vector<int>(n,0));
10         int res = 0;
11         for(int j = 0;j < n;j ++) 
12         {
13             if(matrix[0][j] == 1) dp[0][j] = 1;
14             if(res < dp[0][j]) res = dp[0][j];
15         }
16 
17         for(int i = 1;i < m;i ++)
18         {
19             if(matrix[i][0] == 1) dp[i][0] = 1;
20             if(res < dp[i][0]) res = dp[i][0];
21         }
22 
23         for(int i = 1;i < m;i ++)
24         {
25             for(int j = 1;j < n;j ++)
26             {
27                 if(matrix[i][j] == 0) continue;
28                 dp[i][j] = min(dp[i][j - 1],min(dp[i - 1][j],dp[i - 1][j - 1])) + 1;
29                 if(res < dp[i][j]) res = dp[i][j];
30             }
31         }
32 
33         return res * res;
34     }
35 };

 

221. 最大正方形

原文:https://www.cnblogs.com/yuhong1103/p/12680702.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!