Advertisement

LeetCode(221)-Maximal Square 二维矩阵 O(N²) DP

阅读量:

题目:

Given a 2D binary matrix filled with 0’s and 1’s, find the largest square containing only 1’s and return its area.

Example:

Input:

1 0 1 0 0
1 0 1 1 1
1 1 1 1 1
1 0 0 1 0

Output: 4

翻译:

在二维二进制矩阵中,若矩阵元素仅由0和1构成,需确定包含最多1元素的正方形区域,并计算其面积大小。

方法:动态规划:

我们构建一个二维矩阵dp,其中dp[i][j]用于表示以该位置作为右下角的最大正方形的边长。在遍历原始矩阵的过程中,每当遇到值为1的元素时,便计算以该元素为右下角所能形成的最大正方形的边长。

判断正方形的过程是逐步递增的:

  • 首先确认当前节点是否为1;
  • 接着验证2×2范围内的元素是否满足条件;
  • 然后依次检查更大的范围,直至n×n范围是否符合要求。
    由此可知,后一结果的成立依赖于前一结果的前提条件,因此采用动态规划方法进行处理。

dp[i][j]所对应的左方和上方区域即为其作为原点时所覆盖的第二象限区域,这些信息在计算过程中已经被提前获取。因此将当前位置设置为正方形的右下角,正是基

全部评论 (0)

还没有任何评论哟~