1139. 最大的以 1 为边界的正方形

边界全部由1组成的最大正方形子网格问题详解

题目描述

给定一个由若干 0 和 1 组成的二维网格 grid,请找出一个边界全部由 1 组成的最大正方形子网格,并返回该子网格中的元素数量(即正方形面积)。如果不存在这样的子网格,返回 0。


输入输出示例

示例 1:

输入:
grid = [
  [1, 1, 1],
  [1, 0, 1],
  [1, 1, 1]
]

输出:9

解释:整个 3x3 的正方形边界均为1,面积为 3*3=9。

示例 2:

输入:
grid = [
  [1, 1, 0, 0]
]

输出:1

解释:最大的满足条件的正方形为单个的1,面积为1。

解题分析

问题本质

我们需要找一个子网格,它是一个正方形,且正方形的四条边全部是 1。正方形内部的元素不做限制,只看边界。

例如,边长为 k 的正方形,边界上共有 4k - 4 个元素都必须是 1。


简单暴力法(不可行)

暴力解法可以枚举所有可能的子正方形,从大到小,依次判断四条边是否全部为1。

  • 时间复杂度极高,约为 O(m×n×min⁡(m,n))O(m \times n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值