https://leetcode-cn.com/problems/maximal-square/
在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵内,找到只包含 ‘1’ 的最大正方形,并返回其面积
输入:matrix = [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“0”]]
输出:4
**输入:**matrix = [[“0”,“1”],[“1”,“0”]] **输出:**1
**输入:**matrix = [[“0”]] **输出:**0
要求
m == matrix.length
n == matrix[i].length
1 <= m, n <= 300
matrix[i][j] 为 ‘0’ 或 ‘1’
这道题目很明显是一个二维dp,dp[i][j]表示长为i,宽为j的矩形里面最大的正方有多大。那么这道题目,仔细分析一下,会发现,其实和求最大连续和和最大连续乘积类似,都是算不算自己的问题。也就是说,只需要比较dp[i-1][j]、dp[i][j-1]和包含自己在内的最大正方形的大小,就可以得到dp[i][j]的最值。
代码如下:
class Solution