5.8——221. 最大正方形
作者:互联网
221. 最大正方形
在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 1.解题思路(动态规划) 若形成正方形(非单 1),以当前为右下角的视角看,则需要:当前格、上、左、左上都是 1 可以换个角度:当前格、上、左、左上都不能受 0 的限制,才能成为正方形 递归式:dp(i, j) = min(dp(i-1, j), dp(i, j-1), dp(i-1, j-1)) + 1(grid(i, j) == 1时) -图1:受限于左上的0 -图2:受限于上边的0 -图3:受限于左边的0 -数字表示:以此为正方形右下角的最大边长 -黄色表示:格子 ? 作为右下角的正方形区域 考虑到原数组的大小可能会出现索引越界问题,可以创建一个扩展上边和左边的dp数组 2.源码 3.暴力法源码 将所有的1放入到一个队列中。然后遍历这个队列。 以1作为正方形的左上角逐层向外寻找能够达到最大的正方形。标签:右下角,5.8,正方形,受限于,源码,221,左上,dp 来源: https://www.cnblogs.com/xiaoqichaoren/p/12951868.html