【2373. 矩阵中的局部最大值】

news2024/10/2 16:27:51

来源:力扣(LeetCode)

描述:

给你一个大小为 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:

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:

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

方法:遍历

思路与算法

设 grid 的大小为 n × n,那么我们申请一个大小为 (n − 2) × (n − 2) 的矩阵 res 用来存放答案。我们遍历 grid 中每个 3 × 3 子矩阵的左上角,然后统计当前子矩阵的最大值放入 res 中。

具体做法是,我们顺序遍历 i (0 ≤ i < n − 2),再顺序遍历 j (0 ≤ j < n − 2),接着遍历求解 { grid(x, y) ∣ i ≤ x < i + 3, j ≤ y < j + 3 } 的最大值放入 res[i][j] 中。

代码:

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;
    }
};

执行用时:8 ms, 在所有 C++ 提交中击败了98.84%的用户
内存消耗:10.7 MB, 在所有 C++ 提交中击败了87.21%的用户
复杂度分析
时间复杂度:O(n2),其中 n 是矩阵 grid 的行数和列数。
空间复杂度:O(1)。这里不考虑返回值的空间。
author:LeetCode-Solution

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/380291.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

搭建私人《我的世界》服务器,使用Cpolar内网穿透更简单

文章目录1.前言2.本地服务器搭建2.1 设置环境变量2.2 进行《我的世界》服务器端设置2.3 测试和使用3.本地MC服务器的内网穿透3.1.Cpolar云端设置3.2.Cpolar本地设置3.3.测试和使用4.结语1.前言 要说去年游戏圈的重磅大瓜&#xff0c;想必网易和暴雪的分家必能上榜。虽然两家大…

元宇宙对体育运动意味着什么?

欢迎来到Hubbleverse &#x1f30d; 关注我们 关注宇宙新鲜事 &#x1f4cc; 预计阅读时长&#xff1a;8分钟 本文仅代表作者个人观点&#xff0c;不代表平台意见&#xff0c;不构成投资建议。 Facebook将其品牌重塑为“Meta”&#xff0c;“元”的概念推向了主流&#xff…

如何退出PPT文件的“只读模式”?

PPT文件设置了“只读模式”&#xff0c;打开文件就会弹出对话框&#xff0c;提示【输入密码以修改或以只读方式打开】。 如果有密码&#xff0c;输入密码后可以正常修改编辑PPT&#xff0c;但下次再打开时仍旧会出现提示框&#xff1b;如果没有密码&#xff0c;选择【只读】可…

第十五届(2022年)山东省职业院校技能大赛高职组信息安全管理与评估竞赛试题

第十五届&#xff08;2022年&#xff09;山东省职业院校技能大赛高职组信息安全管理与评估 竞赛试题 第一阶段竞赛项目试题 根据信息安全管理与评估技术文件要求&#xff0c;第一阶段为网络平台搭建与网络安全设备配置与防护。本文件为信息安全管理与评估项目竞赛-第一阶段试题…

【正点原子FPGA连载】第二十一章AXI DMA环路测试 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第二十一章AXI D…

全网资料最全Java数据结构与算法-----算法分析

算法分析 研究算法的最终目的就是如何花更少的时间&#xff0c;如何占用更少的内存去完成相同的需求&#xff0c;并且也通过案例演示了不同算法之间时间耗费和空间耗费上的差异&#xff0c;但我们并不能将时间占用和空间占用量化&#xff0c;因此&#xff0c;接下来我们要学习…

Keil新建一个国民32位MCU工程

1.打开Keil软件&#xff0c;点击Project→New uVision→Project 2.将工程保存到自己的工程文件夹&#xff0c;并给项目命名&#xff0c;点击保存 3.选择自己需要开发的芯片&#xff0c;点击OK 4.点击OK 5.出现上图所示&#xff0c;工程已经建好了&#xff0c;点击配置工程。 6.…

用Python实现九九乘法表的几种方式,最简单只需一行代码

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 我们在学习Python的过程中需要不断的积累和练习&#xff0c;这样才能够走的更远&#xff0c; 今天一起来学习怎么用Python写九九乘法表~ 更多教程源码资料电子书: 点击此处跳转文末名片获取 第一种方法、for-for 代码&…

大数据处理学习笔记1.6 Scala数据结构

文章目录零、本讲学习目标一、数组 (Array)&#xff08;一&#xff09;定长数组1、数组定义&#xff08;1&#xff09;定义数组时初始化数据&#xff08;2&#xff09;定义时指定数组长度&#xff0c;后赋值2、数组遍历&#xff08;1&#xff09;传统for循环方式&#xff08;2&…

JavaSE:异常机制

异常概念异常发生的原因用户输入非法数据要打开的文件不存在网络中断/JVM内存溢出&#xff08;JVM是JRE的一部分。它是一个虚构出来的计算机&#xff09;除0、非法参数等三种类型的异常&#xff0c;用以理解异常检查性异常【otherException】&#xff1a;程序员无法预见的&…

Linux权限相关知识(大量图文展示,及详细操作)

Linux权限相关概念 Linux下有两种用户&#xff1a;一种是超级用户&#xff08;root&#xff09;、一种是普通用户。 超级用户&#xff1a;可以在linux系统下做任何事情&#xff0c;不受限制 普通用户&#xff1a;在linux下做有限的事情。 超级用户的命令提示符是“#”&#xf…

关于excel文件导入的bug总结

从项目中获取到模板文件&#xff0c;更名 “external_platform_account_template.xls” &#xff0c;注意此时我只改了文件名没改文件属性。 文件填充内容如下&#xff1a; postman调用导入接口本地测试报错&#xff0c;错误如下&#xff1a; 报错信息&#xff1a; The supp…

微信扫码登录

一、准备工作 微信开发者平台&#xff1a;https://open.weixin.qq.com 1、注册 2、邮箱激活 3、完善开发者资料 4、开发者资质认证&#xff1a;仅能企业注册&#xff08;后面提供学习的使用渠道&#xff09;准备营业执照&#xff0c;1-2个工作日审批、300元 5、创建网站应用&…

leetcode 61~70 学习经历

leetcode 61~70 学习经历61. 旋转链表62. 不同路径63. 不同路径 II64. 最小路径和65. 有效数字66. 加一67. 二进制求和68. 文本左右对齐69. x 的平方根70. 爬楼梯小结61. 旋转链表 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置…

【论文精读】Benchmarking Deep Learning Interpretability in Time Series Predictions

【论文精读】Benchmarking Deep Learning Interpretability in Time Series Predictions Abstract Saliency methods are used extensively to highlight the importance of input features in model predictions. These methods are mostly used in vision and language task…

嵌入式 Linux多进程

目录 一、Linux进程概述 1、进程标识 2、进程的运行身份 3、进程的状态 4、Linux下进程的结果及管理 5、一些进程相关信息&相关命令 进程process&#xff1a; 进程相关命令&#xff1a; 二、Linux进程创建与控制 1、fork进程创建函数 2、进程的终止 3、wait和wa…

react setState学习记录

react setState学习记录1.总体看来2.setState的执行是异步的3.函数式setState1.总体看来 (1). setState(stateChange, [callback])------对象式的setState 1.stateChange为状态改变对象(该对象可以体现出状态的更改) 2.callback是可选的回调函数, 它在状态更新完毕、界面也更新…

【微信小程序】-- WXSS 模板样式- 全局样式和局部样式(十四)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…

taobao.opensecurity.isv.uid.get( 获取open security uid for isv )

&#xffe5;免费不需用户授权 根据 open_uid 获取 open_uid_isv 用于同一个 isv的多个app间数据关联 公共参数 请求地址: HTTP地址 http://gw.api.taobao.com/router/rest 公共请求参数: 点击获取key和secret 请求示例 TaobaoClient client new DefaultTaobaoClient(url, a…

你想要的Android性能优化系列:启动优化 !

App启动优化为什么要做App的启动优化&#xff1f;网页端存在的一个定律叫8秒定律&#xff1a;即指用户访问一个网站时&#xff0c;如果等待打开的时间超过8秒&#xff0c;超过70%的用户将会放弃等待。同样的&#xff0c;移动端也有一个8秒定律&#xff1a;如果一个App的启动时间…