LeetCode 221. 最大正方形

LeetCode 221. 最大正方形

思路:f[i][j]表示以i,j为右下角的正方形的最大边长是多少,那么f[i][j]就可能由f[i-1][j-1],f[i][j-1],f[i-1][j]扩展而得,

代码:

class Solution {
public:
    int maximalSquare(vector<vector<char>>& matrix) {
        int n=matrix.size();
        if(!n) return 0;
        int m=matrix[0].size();
        vector<vector<int>> f(n+1,vector<int>(m+1));
        int res=0;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                if(matrix[i-1][j-1]=='1'){
                    f[i][j]=min(f[i-1][j-1],min(f[i-1][j],f[i][j-1]))+1;
                    res=max(res,f[i][j]);
                }
            }
        }
        return res*res;

    }
};
上一篇:python蟒蛇绘制思路


下一篇:【数据结构C++】01绪论