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、动态规划解法