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

Leetcode 2661. 找出叠涂元素

  • Leetcode 2661. 找出叠涂元素
  • 题目
    • 给你一个下标从 0 开始的整数数组 arr 和一个 m x n 的整数 矩阵 mat 。arr 和 mat 都包含范围 [1,m * n] 内的 所有 整数。
    • 从下标 0 开始遍历 arr 中的每个下标 i ,并将包含整数 arr[i] 的 mat 单元格涂色。
    • 请你找出 arr 中在 mat 的某一行或某一列上都被涂色且下标最小的元素,并返回其下标 i 。
    • m == mat.length
    • n = mat[i].length
    • arr.length == m * n
    • 1 <= m, n <= 10 ^ 5
    • 1 <= m * n <= 10 ^ 5
    • 1 <= arr[i], mat[r][c] <= m * n
    • arr 中的所有整数 互不相同
    • mat 中的所有整数 互不相同
  • 解法
    • 将 mat 每个数对应的行列号放入 HashMap,然后遍历 arr 数字,找到每个行列号对应加 1,当某个行号的数字加到 n(总列数)、或者列号的数字加到 m(总行数)就是结果
    • 时间复杂度:O(mn),空间复杂地:O(mn)
  • 代码
/*** 将 mat 每个数对应的行列号放入 HashMap,然后遍历 arr 数字,找到每个行列号对应加 1,当某个行号的数字加到 n(总列数)、或者列号的数字加到 m(总行数)就是结果*/public int solution(int[] arr, int[][] mat) {// 判空if(arr == null || mat == null || mat.length <= 0) {return -1;}int m = mat.length;int n = mat[0].length;// 将 mat 每个数对应的行列号放入 HashMapMap<Integer, Pair<Integer, Integer>> matRowColMap = new HashMap<>();for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {matRowColMap.put(mat[i][j], new Pair<>(i, j));}}int res = -1;int[] rowCount = new int[m];int[] colCount = new int[n];// 遍历 arr 数字,找到每个行列号对应加 1for (int i = 0; i < m * n; i++) {Pair<Integer, Integer> rowColPair = matRowColMap.get(arr[i]);rowCount[rowColPair.getKey()]++;colCount[rowColPair.getValue()]++;if (rowCount[rowColPair.getKey()] == n || colCount[rowColPair.getValue()] == m) {res = i;break;}}return res;}

相关文章:

Leetcode 2661. 找出叠涂元素

Leetcode 2661. 找出叠涂元素题目 给你一个下标从 0 开始的整数数组 arr 和一个 m x n 的整数 矩阵 mat 。arr 和 mat 都包含范围 [1&#xff0c;m * n] 内的 所有 整数。从下标 0 开始遍历 arr 中的每个下标 i &#xff0c;并将包含整数 arr[i] 的 mat 单元格涂色。请你找出 a…...

vscode代码调试配置

C/C代码调试 点击 vscode左侧的 run and debug&#xff0c;新建launch.json 和 tasks.json&#xff0c;并进行配置如下 launch.json {// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more informati…...

PTA 7-225 sdut-C语言实验- 冒泡排序中数据交换的次数

听说过冒泡排序么&#xff1f;一种很暴力的排序方法。今天我们不希望你用它来排序&#xff0c;而是希望你能算出从小到大冒泡排序的过程中一共进行了多少次数据交换。 输入格式: 输入数据的第一行为一个正整数 T &#xff0c;表示有 T 组测试数据。 接下来T行&#xff0c;每行…...

新的 BLUFFS 攻击导致蓝牙连接不再私密

蓝牙是一种连接我们设备的低功耗无线技术&#xff0c;有一个新的漏洞需要解决。 中间的攻击者可以使用新的 BLUFFS 攻击轻松窥探您的通信。 法国研究中心 EURECOM 的研究员 Daniele Antonioli 演示了六种新颖的攻击&#xff0c;这些攻击被定义为 BLUFFS&#xff08;蓝牙转发和…...

安全测试之推荐工具(一)

文章目录 一、前言二、Web安全&#xff08;一&#xff09;AppScan&#xff08;推荐&#xff09;&#xff08;二&#xff09;AWVS&#xff08;推荐&#xff09;&#xff08;三&#xff09;Burp Suite&#xff08;推荐&#xff09;&#xff08;四&#xff09;OWASP ZAP 三、主机安…...

final关键字

修饰 类&#xff0c;属性&#xff0c;方法&#xff0c;局部变量&#xff08;包括方法参数&#xff09; 类似c语言的const 使用方式&#xff1a; 1 不希望类被继承 用final类&#xff08;类很重要&#xff0c;担心别人重写/修改&#xff09; 2 不希望某…...

WPF MVVM模式下如何将UI窗口变量传参到Viewmodel层

WPF MVVM模式下如何将UI窗口变量传参到Viewmodel层 UI层窗口定义 //窗口中绑定ViewModel<hc:GlowWindow.DataContext><viewmodel:MainWindowViewModel /></hc:GlowWindow.DataContext>//注册初始化事件<hc:Interaction.Triggers><hc:EventTrigger…...

条款22:将成员变量声明为private

1.前言 首先&#xff0c;我们应该利用反证法&#xff0c;看看为什么成员变量不该是public&#xff0c;然后再了解所有反对public成员变量的论点同样适用于protected成员变量。最后得出一个结论&#xff1a;成员变量应该是private。 2.为什么不用public 如果成员变量不是publ…...

PTA 7-224 sdut-C语言实验-排序问题

输入10个整数&#xff0c;将它们从小到大排序后输出&#xff0c;并给出现在每个元素在原来序列中的位置。 输入格式: 输入数据有一行&#xff0c;包含10个整数&#xff0c;用空格分开。 输出格式: 输出数据有两行&#xff0c;第一行为排序后的序列&#xff0c;第二行为排序…...

【JavaScript】3.2 JavaScript性能优化

文章目录 1. 避免全局查找2. 避免不必要的属性查找3. 使用快速的JavaScript方法4. 避免不必要的DOM操作5. 使用Web Workers进行后台处理总结 性能优化是任何编程语言的重要组成部分&#xff0c;JavaScript也不例外。在这个章节中&#xff0c;我们将探讨如何优化JavaScript代码&…...

pytorch bert实现文本分类

以imdb公开数据集为例&#xff0c;bert模型可以在huggingface上自行挑选 1.导入必要的库 import os import torch from torch.utils.data import DataLoader, TensorDataset, random_split from transformers import BertTokenizer, BertModel, BertConfig from torch import…...

《开箱元宇宙》:Madballs 解锁炫酷新境界,人物化身系列大卖

你是否曾想过&#xff0c;元宇宙是如何融入世界上最具代表性的品牌和名人的战略中的&#xff1f;在本期的《开箱元宇宙》 系列中&#xff0c;我们与 Madballs 的战略顾问 Derek Roberto 一起聊聊 Madballs 如何在 90 分钟内售罄 2,000 个人物化身系列&#xff0c;以及是什么原…...

4K-Resolution Photo Exposure Correction at 125 FPS with ~8K Parameters

MSLTNet开源 | 4K分辨率125FPS8K的参数量&#xff0c;怎养才可以拒绝这样的模型呢&#xff1f; 错误的曝光照片的校正已经被广泛使用深度卷积神经网络或Transformer进行广泛修正。尽管这些方法具有令人鼓舞的表现&#xff0c;但它们通常在高分辨率照片上具有大量的参数数量和沉…...

网络初识:局域网广域网网络通信基础

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、局域网LAN是什么&#xff1f;二、广域网是什么&#xff1a;三. IP地址四.端口号五.认识协议5.1五元组 总结 前言 一、局域网LAN是什么&#xff1f; 局域网…...

JVM之jps虚拟机进程状态工具

jps虚拟机进程状态工具 1、jps jps&#xff1a;(JVM Process Status Tool)&#xff0c;虚拟机进程状态工具&#xff0c;可以列出正在运行的虚拟机进程&#xff0c;并显示虚拟机执 行主类&#xff08;Main Class&#xff0c;main()函数所在的类&#xff09;的名称&#xff0c…...

C++实现顺序栈的基本操作(扩展)

#include <stdio.h> typedef char ElemType; #define StackSize 100 /*顺序栈的初始分配空间*/ typedef struct { ElemType data[StackSize]; /*保存栈中元素*/int top; /*栈顶指针*/ } SqStack; void InitStack(SqStack &st) {st.top-1; } …...

用python写一个简单的爬虫

爬虫是一种自动化程序&#xff0c;用于从互联网上获取数据。它能够模拟人类浏览网页的行为&#xff0c;访问网页并提取所需的信息。爬虫在很多领域都有广泛的应用&#xff0c;例如数据采集、信息监控、搜索引擎索引等。 下面是一个使用Python编写的简单爬虫示例&#xff1a; …...

分布式追踪

目录 文章目录 目录自定义指标1.删除标签2.添加指标3.禁用指标 分布式追踪上下文传递Jaeger 关于我最后最后 自定义指标 除了 Istio 自带的指标外&#xff0c;我们还可以自定义指标&#xff0c;要自定指标需要用到 Istio 提供的 Telemetry API&#xff0c;该 API 能够灵活地配…...

make -c VS make -f

make 是一个用于构建&#xff08;编译&#xff09;项目的工具&#xff0c;它通过读取一个名为 Makefile 的文件来执行构建任务。make 命令有很多选项和参数&#xff0c;其中包括 -c 和 -f。 make -c&#xff1a; 作用&#xff1a;指定进入指定的目录并执行相应的 Makefile。 示…...

Unity 代码控制Color无变化

Unity中&#xff0c;我们给Color的赋值比较常用的方法是&#xff1a; 1、使用预定义颜色常量&#xff1a; Color color Color.white; //白色 Color color Color.black; //黑色 Color color Color.red; //红色 Color color Color.green; //绿色 Color color Color.blue; …...

怎样3步掌握桌面自动化:智能鼠标键盘录制工具完整攻略

怎样3步掌握桌面自动化&#xff1a;智能鼠标键盘录制工具完整攻略 【免费下载链接】KeymouseGo 类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input 项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo Keymouse…...

V2X通信:自动驾驶安全冗余与混合交通协同的关键技术

1. 项目概述&#xff1a;当自动驾驶汽车遇上“沟通障碍”如果你认为自动驾驶汽车和车与车之间的通信是两个独立的问题&#xff0c;那说明你的思考还不够“渐进式”。是时候重新审视了。自动驾驶的拥护者们常常描绘一个乌托邦式的未来&#xff1a;道路零事故。但他们很少提及那个…...

GitHub 代码提交常见问题及解决指南

摘要本文聚焦 GitHub 代码提交流程&#xff0c;围绕本地文件上传、远程仓库关联、分支推送等核心操作&#xff0c;梳理常见报错&#xff08;如可疑所有权、分支不匹配、协议不支持等&#xff09;&#xff0c;解析错误成因并提供分步解决方法&#xff0c;覆盖 Git 命令执行、仓库…...

NHSE:5分钟掌握动物森友会存档编辑,打造你的完美岛屿

NHSE&#xff1a;5分钟掌握动物森友会存档编辑&#xff0c;打造你的完美岛屿 【免费下载链接】NHSE Animal Crossing: New Horizons save editor 项目地址: https://gitcode.com/gh_mirrors/nh/NHSE 你是否曾经为了收集某个稀有家具而花费数周时间&#xff1f;是否因为地…...

使用 Taotoken CLI 工具一键配置团队开发环境中的大模型密钥

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用 Taotoken CLI 工具一键配置团队开发环境中的大模型密钥 在团队协作开发中&#xff0c;统一管理大模型 API 密钥和端点配置是一…...

Tinke完整技术指南:NDS游戏资源提取与逆向工程深度解析

Tinke完整技术指南&#xff1a;NDS游戏资源提取与逆向工程深度解析 【免费下载链接】tinke Viewer and editor for files of NDS games 项目地址: https://gitcode.com/gh_mirrors/ti/tinke Tinke是一款专业的任天堂DS&#xff08;NDS&#xff09;游戏资源提取与逆向工程…...

如何用Figma-to-JSON解决设计开发协作难题:4个实用场景详解

如何用Figma-to-JSON解决设计开发协作难题&#xff1a;4个实用场景详解 【免费下载链接】figma-to-json &#x1f4be; Read/Write Figma Files as JSON 项目地址: https://gitcode.com/gh_mirrors/fi/figma-to-json 在当今快速迭代的产品开发环境中&#xff0c;设计师与…...

Ask your GIT:AI驱动的代码仓库智能助手,一键解析与安装

1. 项目概述&#xff1a;一个为开发者“减负”的智能代码助手在GitHub、GitLab或者Bitbucket上发现一个看起来很有潜力的开源项目&#xff0c;是每个开发者的日常。但随之而来的&#xff0c;往往是长达十几甚至几十分钟的“阅读理解”时间&#xff1a;你得先通读冗长的README&a…...

DoL-Lyra游戏增强工具新手入门

DoL-Lyra游戏增强工具新手入门 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS DoL-Lyra游戏增强工具是一款专为Degrees of Lewdity游戏设计的完整整合方案&#xff0c;集成了最新汉化补丁、视觉增强…...

别再只会用IP核了!手把手教你用Verilog从零实现一个16阶FIR滤波器(附完整代码)

从零构建16阶FIR滤波器&#xff1a;Verilog实战指南与工程思维解析 在FPGA开发领域&#xff0c;FIR&#xff08;有限脉冲响应&#xff09;滤波器是数字信号处理的基础模块&#xff0c;但大多数工程师习惯直接调用厂商提供的IP核&#xff0c;这就像只会开自动挡汽车的司机——虽…...