当前位置: 首页 > 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


参考链接

相关文章:

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

LeetCode-1139. 最大的以 1 为边界的正方形【前缀和&#xff0c;矩阵】题目描述&#xff1a;解题思路一&#xff1a;前缀和。前缀和来记录边长。解题思路二&#xff1a;0解题思路三&#xff1a;0题目描述&#xff1a; 给你一个由若干 0 和 1 组成的二维网格 grid&#xff0c;请…...

windows10/11,傻瓜式安装pytorch(gpu),在虚拟环境anaconda

安装anaconda地址 &#xff1a;Anaconda | The Worlds Most Popular Data Science Platform安装选项全默认点击next就行。查看支持cuda版本cmd命令行输入nvidia-smi。下图右上角显示11.6为支持的cuda版本。要是显示没有nvidia-smi命令。得安装nvidia驱动&#xff0c;一般情况都…...

Revit导出PDF格式图纸流程及“批量导出图纸”

一、Revit导出PDF格式图纸流程 1、点击左上方“应用程序菜单”即“R”图标&#xff0c;进择“打印”选项。 2、在弹出的对话框中&#xff0c;需要设置图纸“打印范围”&#xff0c;选择“所选的视图/图纸选项”&#xff0c;点击“选择”&#xff0c;按钮&#xff0c;选择我们需…...

【自学Linux】 Linux文件目录结构

Linux文件目录结构 Linux文件目录结构教程 在 Linux 中&#xff0c;有一个很经典的说法&#xff0c;叫做一切皆文件&#xff0c;因此&#xff0c;我们在系统学习 Linux 之前&#xff0c;首先要了解 Linux 的文件目录结构。Linux 主要的目录有三大类&#xff0c;即根目录(/)&a…...

如何让APP在Google Play中成为特色

Google Play覆盖了 190 多个地区&#xff0c;数十亿的用户&#xff0c;所以开发者都会希望APP在应用商店中获得推荐位。 Google Play 上的精选热门应用类型&#xff1a;热门游戏或应用&#xff0c;畅销应用&#xff0c;安装量增长的应用&#xff0c;产生最多收入的应用。 那么…...

【C++】cin的处理过程

使用cin进行输入时&#xff0c;程序将输入视为一系列的字节&#xff0c;其中每个字节都被解释为字符编码。不管目标数据 类型是什么&#xff0c;输入一开始都是字符数据——文本数据。然后&#xff0c;cin对象负责将文本转换为其他类型。 为说明这是如何完成的&#xff0c;来看…...

读取Sentinel和Landsat 压缩包数据,直接进行波段重组、影像裁剪或者匀色镶嵌处理

波段重组在软件中查找&#xff1a;菜单栏-》影像基本处理-》波段处理-》波段重组&#xff0c;弹出如下对话框&#xff1a;根据对话框中的提示&#xff0c;输入需要处理的数据。注意&#xff1a;1、输入数据添加之后&#xff0c;需要点击其中任意一条数据&#xff0c;获取数据波…...

Yakit Web Fuzzer 终极能力强化:热加载 Fuzz

Background 在 HTB&#xff1a;BountyHunter 中&#xff0c;我们发现 Web Fuzzer 在使用中可以 “更强”&#xff0c;我们需要编写 Yak 脚本的事情&#xff0c;如果可以经过某些 Web Fuzzer 的优化&#xff0c;可以达到同样的效果。 在一个标签中&#xff0c;我们实现{{base6…...

Qt新手入门指南 - 如何创建模型/视图(三)

每个UI开发人员都应该了解ModelView编程&#xff0c;本教程的目标是为大家提供一个简单易懂的介绍。Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写&#xff0c;所有平台无差别运行&#xff0c;更提供了几乎所有开发过程中需要用到的工具。如今&#xff…...

【Spring】手动实现简易AOP和IOC

前言 XML&#xff1a;通过Dom4j对XML进行解析和验证。 IOC&#xff1a;通过获取要创建对象的Class类型、构造函数后&#xff0c;通过反射来实现。 AOP&#xff1a;通过使用JDK动态代理和Cglib动态代理实现。 一、解析XML 1.1、解析bean标签 /*** 解析bean标签* param xmlBean…...

EasyExcel的使用

这里写目录标题先导入依赖最简单的写最简单的读項目开发中的一些操作xml一定要默認放先导入依赖 <dependencies><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.1.7</version><…...

基础篇(-1)-java特点、JDK、JRE、JVM区别、字节码编译、跨平台、程序运行

文章目录1.Java的特点有哪些&#xff1f;2.JDK和JRE和JVM的区别3.Java为什么采用字节码编译&#xff1f;4.什么是跨平台&#xff1f;5.Java程序从源代码到运行需要三步&#xff1f;1.Java的特点有哪些&#xff1f; Java是一种编程语言&#xff0c;被特意设计用于互联网的分布式…...

【网络编程】Java快速上手InetAddress类

概念 Java具有较好的网络编程模型/库&#xff0c;其中非常重要的一个API便是InetAddress。在Java.net 网络编程中中有许多类都使用到了InetAddress 这个类代表一个互联网协议&#xff08;IP&#xff09;地址。 IP地址是一个32&#xff08;IPV4&#xff09;位或128&#xff08;…...

小小bat-day1-自动文件上传

前言&#xff1a;日常服务器备份文件或者生产设备等数据文件都统一保存至文件服务器&#xff0c;进行日志分析或者将生产文件CSV、图片等转存至数仓进行数据分析&#xff0c;尤其生产的部分数据是保存在个人电脑的PC端&#xff0c;数据杂&#xff0c;获取困难&#xff0c;手动整…...

2023年美赛D题公布

问题D:联合国可持续发展目标的优先次序背景联合国制定了17项可持续发展目标(SDGs)。实现这些目标最终会改善世界各地许多人的生活。这些目标并不是相互独立的。所以&#xff0c;在某些目标上的积极收获通常是有影响的(积极的或消极的&#xff0c;有时两者都有)。这种相互联系使…...

Gartner 再度预测2023低代码趋势,真的会赚钱吗?

2023年&#xff0c;从业者对低代码的发展充满了想象&#xff0c;人们认为&#xff0c;未来低代码的商业价值不可估量。 此话并非空穴来风。据Gartner的最新报告显示&#xff0c;到2023年&#xff0c;超过70%的企业将采用低代码作为他们发展战略的关键目标之一&#xff1b;到202…...

Zebra ZT410 ZT411 导入中文字体

1.设置--发送到打印机 2.字体--添加--下载 --windows 字体库下载到zebra 打印机 3.字体--工具--调用 ZEBRA驱动包中驱动。 4.老版打印机导入方式 Zebra ZPL条形码打印机上如何下载和使用TrueType或External字体-敏用数码(上海北京济南洛阳)|专注于条码数据处理 (chongshang.co…...

nextTick 的使用和原理(面试题)

答题思路&#xff1a; nextTick 是做什么的&#xff1f;为什么需要它&#xff1f;开发时什么时候使用&#xff1f;介绍一下如何使用nextTick原理解读&#xff0c;结合异步更新和nextTick生效方式 1. nextTick是做什么的&#xff1f; nextTick是等待下一次DOM更新刷新的工具方法…...

Hudi系列19:Hudi写入模式

一. Changelog 模式 如果希望 Hoodie 保留消息的所有变更(I/-U/U/D), 之后接上 Flink 引擎的有状态计算实现全链路近实时数仓(增量计算)&#xff0c; Hoodie 的 MOR 表通过行存 原生支持 保留消息的所有变更(format 层面的集成)&#xff0c; 通过流读MOR 表可以消费到所有的变…...

Kubernetes安全

Kubernetes RBAC授权 Kubernetes 安全框架 K8S安全控制框架主要由下面3个阶段进行控制&#xff0c;每一个阶段都支持插件方式&#xff0c;通过API Server配置来启用插件。1. Authentication&#xff08;鉴权&#xff09; K8s Apiserver提供三种客户端身份认证&#xff1a;• H…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...

VisualXML全新升级 | 新增数据库编辑功能

VisualXML是一个功能强大的网络总线设计工具&#xff0c;专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑&#xff08;如DBC、LDF、ARXML、HEX等&#xff09;&#xff0c;并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...

智能职业发展系统:AI驱动的职业规划平台技术解析

智能职业发展系统&#xff1a;AI驱动的职业规划平台技术解析 引言&#xff1a;数字时代的职业革命 在当今瞬息万变的就业市场中&#xff0c;传统的职业规划方法已无法满足个人和企业的需求。据统计&#xff0c;全球每年有超过2亿人面临职业转型困境&#xff0c;而企业也因此遭…...

高效的后台管理系统——可进行二次开发

随着互联网技术的迅猛发展&#xff0c;企业的数字化管理变得愈加重要。后台管理系统作为数据存储与业务管理的核心&#xff0c;成为了现代企业不可或缺的一部分。今天我们要介绍的是一款名为 若依后台管理框架 的系统&#xff0c;它不仅支持跨平台应用&#xff0c;还能提供丰富…...