LINTCODE——最大正方形

来源:互联网 发布:windows访问samba 编辑:程序博客网 时间:2024/05/29 16:12

LINTCODE——最大正方形

思路:暂时没想到怎么快速找出来,用的是遍历的方法,另外写个check函数主要是为了以后修改;

class Solution {public:    /*     * @param matrix: a matrix of 0 and 1     * @return: an integer     */    int maxSquare(vector<vector<int>> matrix) {        // write your code here        int count = 0;        int m = matrix.size();        int n = matrix[0].size();        for(int i = 0 ; i < m  ; i++)        {            for(int j = 0 ; j < n ;j++)            {                if(matrix[i][j] == 1)                    count = max(count , check(matrix,i,j));            }        }        return count;    }    int check(vector<vector<int>> &matrix , int row ,int line)    {        int m = matrix.size();        int n = matrix[0].size();        int num = 1;        for(int i = row + 1,j  = line + 1; i < m && j < n; i++,j++)        {            int li = row,lj = line;            //每次只判断新加的一条边是否全为;            while(li <= i && lj <= j)            {                if(matrix[li][j] != 1 || matrix[i][lj] != 1)                    return num*num;                li++,lj++;            }            num++;        }        return num*num;    }};
原创粉丝点击