LeetCode-2373. 矩阵中的局部最大值【矩阵,数组】

2023-11-11

题目描述:

给你一个大小为 n x n 的整数矩阵 grid 。

生成一个大小为 (n - 2) x (n - 2) 的整数矩阵 maxLocal ,并满足:

maxLocal[i][j] 等于 grid 中以 i + 1 行和 j + 1 列为中心的 3 x 3 矩阵中的 最大值 。
换句话说,我们希望找出 grid 中每个 3 x 3 矩阵中的最大值。

返回生成的矩阵。

示例 1:
在这里插入图片描述

输入:grid = [[9,9,8,1],[5,6,2,6],[8,2,6,4],[6,2,2,2]]
输出:[[9,9],[8,6]]
解释:原矩阵和生成的矩阵如上图所示。
注意,生成的矩阵中,每个值都对应 grid 中一个相接的 3 x 3 矩阵的最大值。

示例 2:
在这里插入图片描述

输入:grid = [[1,1,1,1,1],[1,1,1,1,1],[1,1,2,1,1],[1,1,1,1,1],[1,1,1,1,1]]
输出:[[2,2,2],[2,2,2],[2,2,2]]
解释:注意,2 包含在 grid 中每个 3 x 3 的矩阵中。

提示:

n == grid.length == grid[i].length
3 <= n <= 100
1 <= grid[i][j] <= 100
https://leetcode.cn/problems/largest-local-values-in-a-matrix/

解题思路一:原地修改。首先将每个3*3的矩阵的最大值存放在左上角的点,然后修改给的grid矩阵的大小。

for(int k=i;k<i+3;++k)
grid[i][j]=max(grid[i][j],max_element(grid[k].begin()+j,grid[k].begin()+j+3));
//以grid[i][j]为3
3矩阵左上角的一点,将最大值存在其中

class Solution {
public:
    vector<vector<int>> largestLocal(vector<vector<int>>& grid) {
        int n=grid.size();
        for(int i=0;i<n-2;++i){
            for(int j=0;j<n-2;++j)
                for(int k=i;k<i+3;++k)//以grid[i][j]为3*3矩阵左上角的一点,将最大值存在其中
                    grid[i][j]=max(grid[i][j],*max_element(grid[k].begin()+j,grid[k].begin()+j+3));
            grid[i].resize(n-2);//每当一行遍历完的时候,可以直接将列减少2
        }
        grid.resize(n-2);//全部遍历完后,将最终的行减小2
        return grid;        
    }
};

时间复杂度:O(n2)
空间复杂度:O(1)

解题思路二:暴力,申请一个数组

class Solution {
public:
    vector<vector<int>> largestLocal(vector<vector<int>>& grid) {
        int n = grid.size();
        vector<vector<int>> res(n - 2, vector<int>(n - 2, 0));
        for (int i = 0; i < n - 2; i++) {
            for (int j = 0; j < n - 2; j++) {
                for (int x = i; x < i + 3; x++) {
                    for (int y = j; y < j + 3; y++) {
                        res[i][j] = max(res[i][j], grid[x][y]);
                    }
                }
            }
        }
        return res;
    }
};

时间复杂度:O(n2)
空间复杂度:O(1)这里不考虑返回值的空间。

解题思路三:0


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LeetCode-2373. 矩阵中的局部最大值【矩阵,数组】 的相关文章

  • OpenCv读/写视频色差

    我试图简单地使用 openCV 打开视频 处理帧并将处理后的帧写入新的视频文件 我的问题是 即使我根本不处理帧 只是打开视频 使用 VideoCapture 读取帧并使用 VideoWriter 将它们写入新文件 输出文件看起来比输入更 绿
  • 使用具有现有访问令牌的 Google API .NET 客户端

    用例如下 移动应用程序正在通过 Google 对用户进行身份验证 并且在某些时候 我们需要将用户的视频发布到他的 YouTube 帐户 出于实际原因 实际发布应该由后端完成 已经存储在那里的大文件 由于用户已经通过应用程序的身份验证 因此应
  • 以编程方式检查页面是否需要基于 web.config 设置进行身份验证

    我想知道是否有一种方法可以检查页面是否需要基于 web config 设置进行身份验证 基本上如果有这样的节点
  • 从 MVC 迁移到 ASP.NET Core 3.1 中的端点路由时,具有角色的 AuthorizeAttribute 不起作用

    我正在尝试将我的项目从 UseMVC asp net core 2 2 兼容样式 升级到 UseEndpoint Routing 并且我的所有请求都被重定向到我的验证失败页面 它与声明有关 如果我删除 Authorize Roles Adm
  • JSON 数组到 C# 列表

    如何将这个简单的 JSON 字符串反序列化为 C 中的列表 on4ThnU7 n71YZYVKD CVfSpM2W 10kQotV 这样 List
  • 暂停下载线程

    我正在用 C 编写一个非常简单的批量下载程序 该程序读取要下载的 URL 的 txt 文件 我已经设置了一个全局线程和委托来更新 GUI 按下 开始 按钮即可创建并启动该线程 我想要做的是有一个 暂停 按钮 使我能够暂停下载 直到点击 恢复
  • 如何从 C# 控制器重定向到外部 url

    我使用 C 控制器作为网络服务 在其中我想将用户重定向到外部网址 我该怎么做 Tried System Web HttpContext Current Response Redirect 但没有成功 使用控制器的重定向 http msdn
  • 检查算术运算中的溢出情况[重复]

    这个问题在这里已经有答案了 可能的重复 检测 C C 中整数溢出的最佳方法 https stackoverflow com questions 199333 best way to detect integer overflow in c
  • 如何从网站下载 .EXE 文件?

    我正在编写一个应用程序 需要从网站下载 exe 文件 我正在使用 Visual Studio Express 2008 我正在使用以下代码 private void button1 Click object sender EventArgs
  • C 语言中 =+(等于加)是什么意思?

    我碰到 与标准相反 今天在一些 C 代码中 我不太确定这里发生了什么 我在文档中也找不到它 In ancientC 版本 相当于 它的残余物与最早的恐龙骨头一起被发现 例如 B 引入了广义赋值运算符 使用x y to add y to x
  • 在 2D 中将一个点旋转另一个点

    我想知道当一个点相对于另一个点旋转一定角度时如何计算出新的坐标 我有一个块箭头 想要将其相对于箭头底部中间的点旋转角度 theta 这是允许我在两个屏幕控件之间绘制多边形所必需的 我无法使用和旋转图像 从我到目前为止所考虑的情况来看 使问题
  • 无法将类型“System.IO.Stream”隐式转换为“Java.IO.InputStream”

    我提到了一些类似的问题 但没有一个涉及IO 当我使用时 我在java中使用了相同的代码Eclipse 那次就成功了 但现在我尝试在中使用这段代码Mono for Android C 它不起作用 我正在尝试运行此代码来创建一个InputStr
  • 如何在c#中的内部类中访问外部类的变量[重复]

    这个问题在这里已经有答案了 我有两个类 我需要声明两个类共有的变量 如果是嵌套类 我需要访问内部类中的外部类变量 请给我一个更好的方法来在 C 中做到这一点 示例代码 Class A int a Class B Need to access
  • 通过 NHibernate 进行查询,无需 N+1 - 包含示例

    我有一个 N 1 问题 我不知道如何解决它 可以在这个问题的底部找到完全可重复的样本 因此 如果您愿意 请创建数据库 设置 NUnit 测试和所有附带的类 并尝试在本地消除 N 1 这是我遇到的真实问题的匿名版本 众所周知 这段代码对于帮助
  • 当“int”处于最大值并使用 postfix ++ 进行测试时,代码定义良好吗?

    示例 未定义行为的一个示例是整数溢出的行为 C11dr 3 4 3 3 int溢出是未定义的行为 但这是否适用于存在循环的以下内容 并且不使用现在超出范围的副作用i 特别是 这是否后缀增量规格帮助 结果的值计算在副作用之前排序 更新操作数的
  • 有没有一种简单的方法可以让 Visual Studio 2015 使用特定的 ToolsVersion?

    使用特定版本构建项目或解决方案时msbuild我可以使用以下命令选择早期的 net 工具链 toolsversion or tv switch C Program Files x86 MSBuild 14 0 bin msbuild tv
  • 剪贴板在 .NET 3.5 和 4 中的行为有所不同,但为什么呢?

    我们最近将一个非常大的项目从 NET Framework 3 5 升级到 4 最初一切似乎都工作正常 但现在复制粘贴操作开始出现错误 我已经成功制作了一个小型的可复制应用程序 它显示了 NET 3 5 和 4 中的不同行为 我还找到了一种解
  • 使用 C# 从 DateTime 获取日期

    愚蠢的问题 给定日期时间中的日期 我知道它是星期二 例如我如何知道它的 tue 2 和 mon 1 等 Thanks 您正在寻找星期几 http msdn microsoft com en us library system datetim
  • 使用 Crypto++ 获取 ECDSA 签名

    我必须使用 Crypto 在变量中获取 ECDSA 签名 我在启动 SignMessage 后尝试获取它 但签名为空 我怎样才能得到它 你看过 Crypto wiki 吗 上面有很多东西椭圆曲线数字签名算法 http www cryptop
  • 是否可以在 C# 中强制接口实现为虚拟?

    我今天遇到了一个问题 试图重写尚未声明为虚拟的接口方法的实现 在这种情况下 我无法更改接口或基本实现 而必须尝试其他方法 但我想知道是否有一种方法可以强制类使用虚拟方法实现接口 Example interface IBuilder

随机推荐

  • 深度学习系列:阿里DIN模型的原理和代码实现

    一 前言 今天介绍阿里巴巴的DIN网络 不得不说 阿里妈妈的大佬是真的多 经常都会更新非常多的创造性的东西 比如DIN中使用的自适应正则化技术以及Dice激活函数以及注意力机制的使用 并且值得注意的是DIN网络中使用的注意力机制还挺多的 哈
  • C语言中不定参数函数

    在我们平常调用函数的时候 会进行传参 调用的函数也会有参数去接收 数量和类型都是对应的 而不定参数函数是指对一个函数传参 参数的个数可以不确定 接下来 我就简单的叙述一下不定参数函数的原理及应用 在我们刚学C语言的时候 大多会首先接触pri
  • 可变长参数 VS C++11 可变长模板

    转 https blog csdn net zj510 article details 36633603 C 可变长参数 VS C 11 可变长模板 2014年07月03日 13 50 32 阅读数 10437 有些时候 我们定义一个函数
  • fine-tuning(微调)的理解

    fine tuning 介绍 什么情况下使用微调 微调指导事项 不同数据集下使用微调 涉及到的其他知识 学习率 learning rate 卷积神经网络的核心 迁移学习与微调 什么是迁移学习 为什么要迁移学习 详细解释 自己的理解 不知道对
  • 分库分表设计方案

    一 为什么要分库分表 随着业务的不断发展 数据量不断增加 因此数据操作 如增删改查的开销也会越来越大 原来基于单库单表的设计已经不能满足存储需求 数据库随时面临爆库风险 再加上物理服务器的资源有限 CPU 磁盘 内存 IO 等 最终数据库所
  • 爬虫之selenium

    目录 selenium介绍 基本使用 selenium用法 元素操作 等待元素被加载 元素各项属性 执行js代码 切换选项卡 浏览器前进后退 无界面浏览器 xpath的使用 简单介绍 selenium中使用 异常处理 登录获取cookie保
  • Android 图片压缩二:

    public Bitmap zoomBitmap Bitmap bitmap int width int height int w bitmap getWidth int h bitmap getHeight Matrix matrix n
  • Asp.Net Core&CAP实现分布式事务

    需要注意的是标题中的CAP不是指的CAP理论 而是园区大神杨晓东实现的框架 CAP框架基于本地消息表用最终一致性实现分布式事务 本地消息表 首先我们考虑一个场景 在将用户信息更改后 需要发送一条消息到消息队列 缓存或是写入到其他库中 这个过
  • STM32F103ZET6【HAL函开发】STM32CUBEMX------II2C实验

    SCL和SDA都要接上拉电阻 起始信号 SCL为高 SDA由高变为低 停止信号 SCL为高 SDA由低变为高 数据有效性 SCL为高电平时 SDA数据有效 此时SDA为高电平时 表示数据为 1 为低电平时 表示数据为 0 当SCL为低电平时
  • Linus命令大全

    Linus命令是Linux操作系统中的一些常用命令 下面是一些常用的Linus命令 ls 用于显示当前目录中的文件和目录 cd 用于切换当前目录 pwd 显示当前目录的路径 mkdir 创建新目录 rm 删除文件或目录 cp 复制文件或目录
  • MoveIt入门之——使用MoveIt配置助手生成MoveIt配置文件

    一 安装MoveIt assistant sudo apt get install ros kinetic moveit 如果报错说找不到软件包 可能是没有更新源 只要去roswiki上找安装教程 把源重新加入就可以了 二 打开配置助手 r
  • npm ERR! code EPERM npm ERR! syscall unlink npm ERR!错误解决方法

    npm ERR code EPERM npm ERR syscall unlink npm ERR 错误解决方法 1 问题描述 2 解决方法 1 问题描述 由于之前电脑系统的原因 电脑重置了一下 之前安装的环境都没了 然后在重新安装node
  • 架构之重构的 12 条军规

    注 架构之重构的 12 条军规 上 发布以后 一些读者着急要下篇 所以在这里我把上下篇合并成一篇 让大家可以阅读完整版 不用分开看了 对于开发者来说 架构设计是软件研发过程中最重要的一环 所谓没有图纸 就建不了房子 在遍地 App 的互联网
  • 自学Python能做什么副业?通过这篇文章一起来看看

    很多小伙伴想在业余的时间自学一下python语言 但是又不知道python能够给自己带来什么 那么小编就通过这篇文章来和大家一起说说python学会了能做哪些副业 一 兼职处理数据 在目前的万物互联的时代下 越来越多的人离不开电脑 手机的办
  • 爬虫中的大哥大-scrapy框架介绍

    文章适合于所有的相关人士进行学习 各位看官看完了之后不要立刻转身呀 期待三连关注小小博主加收藏 小小博主回关快 会给你意想不到的惊喜呀 文章目录 scrapy介绍及安装 创建项目 创建爬虫 注意 如何运行 scrapy爬虫实战 1 sett
  • VMWare安装Ubuntu18时卡住

    VMWare安装Ubuntu18时卡住 今天安装Ubuntu时发现一直卡在 Started Network Manager Script Dispatcher Service 或者Mounting 的地方 由于点击安装之后没看 过了2小时看
  • Spring中获取Bean对象的三种注入方式和两种注入方法

    目录 前言 获取Bean对象的三种注入方式 属性注 构造 法注 Setter 注 属性注 构造 法注 和Setter 注 有什么区别呢 两种注入方法 Autowired 和 Resource Autowired 和 Resource 有什么
  • vue3 vite sass样式大量重复

    在vite config ts中配置 css preprocessorOptions 导入scss预编译程序 scss additionalData import assets scss variables scss import asse
  • Linux下修改IP、DNS、路由命令行设置

    一 快速修改 重启后设置就没了 ifconfig eth0 192 168 1 22 netmask 255 255 255 0 up route add default gw 192 168 1 2 二 修改配置文件 重启设置还在 一 u
  • LeetCode-2373. 矩阵中的局部最大值【矩阵,数组】

    LeetCode 2373 矩阵中的局部最大值 矩阵 数组 题目描述 解题思路一 原地修改 首先将每个3 3的矩阵的最大值存放在左上角的点 然后修改给的grid矩阵的大小 解题思路二 暴力 申请一个数组 解题思路三 0 题目描述 给你一个大