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)
还没有任何评论哟~
