当前位置: 首页 > news >正文

LeetCode-1139. 最大的以 1 为边界的正方形【前缀和,矩阵】

LeetCode-1139. 最大的以 1 为边界的正方形【前缀和,矩阵】

  • 题目描述:
  • 解题思路一:前缀和。前缀和来记录边长。
  • 解题思路二:0
  • 解题思路三:0

题目描述:

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

示例 1:

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

示例 2:

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

提示:

1 <= grid.length <= 100
1 <= grid[0].length <= 100
grid[i][j] 为 0 或 1
https://leetcode.cn/problems/largest-1-bordered-square/

解题思路一:前缀和。前缀和来记录边长。

class Solution {
public:int largest1BorderedSquare(vector<vector<int>> &grid) {int m = grid.size(), n = grid[0].size();vector<vector<int>> rs(m, vector<int>(n + 1)), cs(n, vector<int>(m + 1));for (int i = 0; i < m; ++i)for (int j = 0; j < n; ++j) {rs[i][j + 1] = rs[i][j] + grid[i][j]; // 每行的前缀和cs[j][i + 1] = cs[j][i] + grid[i][j]; // 每列的前缀和}for (int d = min(m, n); d; --d) // 从大到小枚举正方形边长 dfor (int i = 0; i <= m - d; ++i)for (int j = 0; j <= n - d; ++j) // 枚举正方形左上角坐标 (i,j)if (rs[i][j + d] - rs[i][j] == d && // 上边cs[j][i + d] - cs[j][i] == d && // 左边 rs[i + d - 1][j + d] - rs[i + d - 1][j] == d && // 下边cs[j + d - 1][i + d] - cs[j + d - 1][i] == d)   // 右边return d * d;return 0;}
};

时间复杂度:O(mnmin(m,n))其中 m和 n分别为 grid的行数和列数。
空间复杂度:O(mn)

解题思路二:0


解题思路三:0


参考链接

http://www.lryc.cn/news/10282.html

相关文章:

  • windows10/11,傻瓜式安装pytorch(gpu),在虚拟环境anaconda
  • Revit导出PDF格式图纸流程及“批量导出图纸”
  • 【自学Linux】 Linux文件目录结构
  • 如何让APP在Google Play中成为特色
  • 【C++】cin的处理过程
  • 读取Sentinel和Landsat 压缩包数据,直接进行波段重组、影像裁剪或者匀色镶嵌处理
  • Yakit Web Fuzzer 终极能力强化:热加载 Fuzz
  • Qt新手入门指南 - 如何创建模型/视图(三)
  • 【Spring】手动实现简易AOP和IOC
  • EasyExcel的使用
  • 基础篇(-1)-java特点、JDK、JRE、JVM区别、字节码编译、跨平台、程序运行
  • 【网络编程】Java快速上手InetAddress类
  • 小小bat-day1-自动文件上传
  • 2023年美赛D题公布
  • Gartner 再度预测2023低代码趋势,真的会赚钱吗?
  • Zebra ZT410 ZT411 导入中文字体
  • nextTick 的使用和原理(面试题)
  • Hudi系列19:Hudi写入模式
  • Kubernetes安全
  • 全国进入裁员潮,到底是大厂难混?还是我技不如人?
  • 电子技术——内部电容效应以及MOS与BJT的高频响应模型
  • 华为OD机试题 - 出租车计费(JavaScript)
  • Django框架进阶版
  • 2023美赛F题全部代码+数据+结果 数学建模
  • Java基础-logback日志使用
  • kaggle竞赛-宠物受欢迎程度(赛题讲解与数据分析)
  • Go语言基础知识学习笔记
  • Python3 错误和异常
  • 程序人生 - 学习和分享
  • 基于树莓派的智能家居项目整理