其他分享
首页 > 其他分享> > 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;

    }
};

标签:matrix,min,int,res,正方形,vector,LeetCode,221,size
来源: https://blog.csdn.net/qq_43619680/article/details/121729044