[leetcode]221. Maximal Square

题目链接

https://leetcode.com/problems/maximal-square/description/

解析:注意是要正方形,开始时找的是矩形,卒。先贴出矩形错误答案


正确答案是:

1.初始化dp,第一行,第一列,有1的设为1。如果1出现,下面初试化ans=1,因为如果ans初始化为0的话,例如[[1,0,0,0]],这种情况,结果返回为0.单独的一个“1”,也算是正方形!注意这一点

2.然后进行动态规划,条件转移是

dp[i][j] = min(dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1]) + 1

dp[i][j]是[i,j]右下角,正方形最长的边长是多少。最长的边长,要满足能组成的是正方形。就是从左边,上边,和对角线处找最小的边长,然后加1.

你可能感兴趣的:([leetcode]221. Maximal Square)