最大正方形
问题:在一个由 '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
解法:动态规划
注意事项:dp的递推公式及边界条件
class Solution: def maximalSquare(self, matrix: List[List[str]]) -> int: if not matrix or len(matrix) < 1: return m, n = len(matrix), len(matrix[0]) length = 0 dp = [[0] * n for _ in range(m)] # dp[i][j]表示以(i,j)为右下角正方形的边长 for i in range(m): for j in range(n): if matrix[i][j] == "1": if i==0 or j==0: dp[i][j] = 1 else: dp[i][j] = min(dp[i-1][j], dp[i-1][j-1], dp[i][j-1]) + 1 # 通过最小边长确定不满足条件 length = max(dp[i][j], length) return length*length
时刻记着自己要成为什么样的人!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)