0
点赞
收藏
分享

微信扫一扫

最大正方形

棒锤_45f2 2022-05-05 阅读 98

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 
举报

相关推荐

0 条评论