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 为边界的正方形【前缀和,矩阵】题目描述:解题思路一:前缀和。前缀和来记录边长。解题思路二:0解题思路三:0题目描述: 给你一个由若干 0 和 1 组成的二维网格 grid,请…...
windows10/11,傻瓜式安装pytorch(gpu),在虚拟环境anaconda
安装anaconda地址 :Anaconda | The Worlds Most Popular Data Science Platform安装选项全默认点击next就行。查看支持cuda版本cmd命令行输入nvidia-smi。下图右上角显示11.6为支持的cuda版本。要是显示没有nvidia-smi命令。得安装nvidia驱动,一般情况都…...
Revit导出PDF格式图纸流程及“批量导出图纸”
一、Revit导出PDF格式图纸流程 1、点击左上方“应用程序菜单”即“R”图标,进择“打印”选项。 2、在弹出的对话框中,需要设置图纸“打印范围”,选择“所选的视图/图纸选项”,点击“选择”,按钮,选择我们需…...
【自学Linux】 Linux文件目录结构
Linux文件目录结构 Linux文件目录结构教程 在 Linux 中,有一个很经典的说法,叫做一切皆文件,因此,我们在系统学习 Linux 之前,首先要了解 Linux 的文件目录结构。Linux 主要的目录有三大类,即根目录(/)&a…...
如何让APP在Google Play中成为特色
Google Play覆盖了 190 多个地区,数十亿的用户,所以开发者都会希望APP在应用商店中获得推荐位。 Google Play 上的精选热门应用类型:热门游戏或应用,畅销应用,安装量增长的应用,产生最多收入的应用。 那么…...
【C++】cin的处理过程
使用cin进行输入时,程序将输入视为一系列的字节,其中每个字节都被解释为字符编码。不管目标数据 类型是什么,输入一开始都是字符数据——文本数据。然后,cin对象负责将文本转换为其他类型。 为说明这是如何完成的,来看…...
读取Sentinel和Landsat 压缩包数据,直接进行波段重组、影像裁剪或者匀色镶嵌处理
波段重组在软件中查找:菜单栏-》影像基本处理-》波段处理-》波段重组,弹出如下对话框:根据对话框中的提示,输入需要处理的数据。注意:1、输入数据添加之后,需要点击其中任意一条数据,获取数据波…...
Yakit Web Fuzzer 终极能力强化:热加载 Fuzz
Background 在 HTB:BountyHunter 中,我们发现 Web Fuzzer 在使用中可以 “更强”,我们需要编写 Yak 脚本的事情,如果可以经过某些 Web Fuzzer 的优化,可以达到同样的效果。 在一个标签中,我们实现{{base6…...
Qt新手入门指南 - 如何创建模型/视图(三)
每个UI开发人员都应该了解ModelView编程,本教程的目标是为大家提供一个简单易懂的介绍。Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今ÿ…...
【Spring】手动实现简易AOP和IOC
前言 XML:通过Dom4j对XML进行解析和验证。 IOC:通过获取要创建对象的Class类型、构造函数后,通过反射来实现。 AOP:通过使用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的特点有哪些?2.JDK和JRE和JVM的区别3.Java为什么采用字节码编译?4.什么是跨平台?5.Java程序从源代码到运行需要三步?1.Java的特点有哪些? Java是一种编程语言,被特意设计用于互联网的分布式…...
【网络编程】Java快速上手InetAddress类
概念 Java具有较好的网络编程模型/库,其中非常重要的一个API便是InetAddress。在Java.net 网络编程中中有许多类都使用到了InetAddress 这个类代表一个互联网协议(IP)地址。 IP地址是一个32(IPV4)位或128(…...
小小bat-day1-自动文件上传
前言:日常服务器备份文件或者生产设备等数据文件都统一保存至文件服务器,进行日志分析或者将生产文件CSV、图片等转存至数仓进行数据分析,尤其生产的部分数据是保存在个人电脑的PC端,数据杂,获取困难,手动整…...
2023年美赛D题公布
问题D:联合国可持续发展目标的优先次序背景联合国制定了17项可持续发展目标(SDGs)。实现这些目标最终会改善世界各地许多人的生活。这些目标并不是相互独立的。所以,在某些目标上的积极收获通常是有影响的(积极的或消极的,有时两者都有)。这种相互联系使…...
Gartner 再度预测2023低代码趋势,真的会赚钱吗?
2023年,从业者对低代码的发展充满了想象,人们认为,未来低代码的商业价值不可估量。 此话并非空穴来风。据Gartner的最新报告显示,到2023年,超过70%的企业将采用低代码作为他们发展战略的关键目标之一;到202…...
Zebra ZT410 ZT411 导入中文字体
1.设置--发送到打印机 2.字体--添加--下载 --windows 字体库下载到zebra 打印机 3.字体--工具--调用 ZEBRA驱动包中驱动。 4.老版打印机导入方式 Zebra ZPL条形码打印机上如何下载和使用TrueType或External字体-敏用数码(上海北京济南洛阳)|专注于条码数据处理 (chongshang.co…...
nextTick 的使用和原理(面试题)
答题思路: nextTick 是做什么的?为什么需要它?开发时什么时候使用?介绍一下如何使用nextTick原理解读,结合异步更新和nextTick生效方式 1. nextTick是做什么的? nextTick是等待下一次DOM更新刷新的工具方法…...
Hudi系列19:Hudi写入模式
一. Changelog 模式 如果希望 Hoodie 保留消息的所有变更(I/-U/U/D), 之后接上 Flink 引擎的有状态计算实现全链路近实时数仓(增量计算), Hoodie 的 MOR 表通过行存 原生支持 保留消息的所有变更(format 层面的集成), 通过流读MOR 表可以消费到所有的变…...
Kubernetes安全
Kubernetes RBAC授权 Kubernetes 安全框架 K8S安全控制框架主要由下面3个阶段进行控制,每一个阶段都支持插件方式,通过API Server配置来启用插件。1. Authentication(鉴权) K8s Apiserver提供三种客户端身份认证:• H…...
避坑指南:运行YooAsset 2.3.9官方Demo时,你可能会遇到的Sprite白块和退出报错
避坑指南:YooAsset 2.3.9官方Demo运行时的Sprite白块与退出报错深度解析 当Unity开发者初次接触YooAsset资源管理系统时,官方Demo往往是快速上手的最佳途径。然而在YooAsset 2.3.9版本的示例项目中,不少开发者反馈遇到了两个典型问题&#x…...
Audacity音频编辑终极指南:从零开始掌握免费专业工具
Audacity音频编辑终极指南:从零开始掌握免费专业工具 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity Audacity是一款功能强大的开源音频编辑软件,支持多轨录音、音频剪辑和效果处理&#x…...
终极免费逆向神器Ghidra:3分钟极速安装与新手入门指南
终极免费逆向神器Ghidra:3分钟极速安装与新手入门指南 【免费下载链接】ghidra_installer Helper scripts to set up OpenJDK 11 and scale Ghidra for 4K on Ubuntu 18.04 / 18.10 项目地址: https://gitcode.com/gh_mirrors/gh/ghidra_installer 还在为复杂…...
Zotero Reference插件:让PDF文献管理效率提升70%的实用指南
Zotero Reference插件:让PDF文献管理效率提升70%的实用指南 【免费下载链接】zotero-reference PDF references add-on for Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-reference 一、价值定位:重新定义学术文献处理方式 认识…...
告别AI人像翻车!MusePublic艺术创作引擎保姆级入门教程
告别AI人像翻车!MusePublic艺术创作引擎保姆级入门教程 🏛 MusePublic 艺术创作引擎是一款专为艺术感时尚人像创作设计的轻量化文本生成图像系统,基于MusePublic专属大模型,采用safetensors安全格式封装,深度优化优雅…...
动态生成展示:LiuJuan20260223Zimage模型根据实时天气创作“风晴雨雪”主题画
动态生成展示:LiuJuan20260223Zimage模型根据实时天气创作“风晴雨雪”主题画 你有没有想过,家里的数字画框或者手机壁纸,能像有生命一样,随着窗外的天气实时变化?今天,我就带你体验一个特别有意思的玩法&…...
VibeVoice语音合成快速入门:Web应用搭建,支持音频文件保存
VibeVoice语音合成快速入门:Web应用搭建,支持音频文件保存 1. 引言:为什么选择VibeVoice? 想象一下,你正在开发一个需要语音交互的应用,或者需要为大量文本内容生成有声版本。传统语音合成方案要么延迟高…...
OpenClaw跨平台测试:Qwen3-VL:30B在Mac/Win/Linux飞书表现
OpenClaw跨平台测试:Qwen3-VL:30B在Mac/Win/Linux飞书表现 1. 测试背景与动机 去年12月接手团队自动化工具选型时,我们遇到了一个典型困境:团队成员分别使用macOS、Windows和Ubuntu系统,但现有AI助手工具要么绑定特定平台&#…...
Hadoop 大数据开发专家 · 学习路线图-Python版
文章目录 基于 Python 为主开发 的 Hadoop 大数据开发工程师 学习路线大纲(可打印、企业级、纯实战方向) 一、阶段1:Python 开发基础(1 个月) 目标:能独立写 Python 代码、操作文件、数据处理、连接数据库 1. Python 核心语法 2. Python 数据结构(必须精通) 3. 文件与数…...
Arduino控制步进电机全攻略:从脉冲计算到加速曲线优化
Arduino控制步进电机全攻略:从脉冲计算到加速曲线优化 引言:为什么需要精准控制步进电机? 在创客和嵌入式开发领域,步进电机因其精准的开环控制特性而广受欢迎。不同于普通直流电机,步进电机能够通过精确控制脉冲数量来…...
