0
点赞
收藏
分享

微信扫一扫

LeetCode 221. 最大正方形

鱼满舱 2022-03-30 阅读 76

LeetCode 221. 最大正方形

文章目录

题目描述

在一个由 '0' 和 '1' 组成的二维矩阵内,找到只包含 '1' 的最大正方形,并返回其面积。

原题连接
链接:https://leetcode-cn.com/problems/maximal-square/

在这里插入图片描述

输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]
输出:4

一、基础框架


二、解题报告

1.思路分析

2.时间复杂度

3.代码示例

class Solution {
 public int maximalSquare(char[][] matrix) {
        int row = matrix.length;
        int col = matrix[0].length;
        //终止程序
        if(matrix == null || row < 1 || col < 1){
            return 0;
        }
        int maxSize = 0;

        int [][] dp = new int[row + 1][col + 1];
        for(int i = 0 ; i < row;i ++ ){
            for(int j = 0; j < col ; j ++){
                if(matrix[i][j] == '1'){
                    dp[i + 1][j + 1] = Math.min(Math.min(dp[i + 1][j],dp[i][j + 1]),dp[i][j]) + 1;
                    maxSize = Math.max(maxSize,dp[i + 1][j + 1]);
                }
            }
        }
        return maxSize * maxSize;
    }
}

2.知识点

1、动态规划解法



总结

举报

相关推荐

0 条评论