最大正方形
Maximal Square
题目详情
问题:最大正方形
考察:数组、动态规划
来源:Citadel
链接:https://www.jointaro.com/interviews/questions/maximal-square/
Given an m x n binary matrix filled with 0's and 1's, find the largest square containing only 1's and return its area.
Example 1:
Input: matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]] Output: 4
Example 2:
Input: matrix = [["0","1"],["1","0"]] Output: 1
Example 3:
Input: matrix = [["0"]] Output: 0
Constraints:
m == matrix.lengthn == matrix[i].length1 <= m, n <= 300matrix[i][j]is'0'or'1'.
解析
思路:dp[i][j] 表示以该格为右下角的最大正方形边长。若当前为 1,则等于左、上、左上三个状态最小值加 1。
复杂度:时间 O(mn),空间 O(n) 可滚动优化。