LeetCode No.13最大正方形

1. LeetCode221题目链接链接

https://leetcode-cn.com/problems/maximal-square/submissions/

2.题目解析

该题目为在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。遍历矩阵所有数据,记录1的位置能组成的矩形,记录边长,循环找到最大的边长,然后返回面积。

public int maximalSquare(char[][] matrix) {
        int m = matrix.length;
        if(m < 1) return 0;
        int n = matrix[0].length;
        int max = 0;
        int[][] dp = new int[m+1][n+1];

        for(int i = 1; i <= m; ++i) {
            for(int j = 1; j <= n; ++j) {
                if(matrix[i-1][j-1] == '1') {
                    dp[i][j] = 1 + Math.min(dp[i-1][j-1], Math.min(dp[i-1][j], dp[i][j-1]));
                    max = Math.max(max, dp[i][j]);
                }
            }
        }

        return max*max;
    }

3. 提交结果

提交结果

你可能感兴趣的:(LeetCode No.13最大正方形)