Day04:每日一题:2661. 找出叠涂元素

2661. 找出叠涂元素

给你一个下标从 0 开始的整数数组 arr 和一个 m x n 的整数 矩阵 mat 。
arr 和 mat 都包含范围 [1,m * n] 内的 所有 整数。从下标 0 开始遍历 arr 中的每个下标 i ,并将包含整数 arr[i] 的 mat 单元格涂色。请你找出 arr 中在 mat 的某一行或某一列上都被涂色且下标最小的元素,并返回其下标 i 。

image

这题题意讲的有点不清楚, 其实就是按照数组下标一个一个遍历,由于mat的值不重复,所以每次只能涂一个,直到一行或者一列涂满为止。

思路就是用一个HashMap存mat中对应的值和其下标(数对二维数组),然后创建两个数组rowCnt和colCnt记录每一行/列的涂色数量,等于总列数/总行数时即涂满返回对应下标:

class Solution {public int firstCompleteIndex(int[] arr, int[][] mat) {int m = mat.length;int n = mat[0].length;Map<Integer, int[]> pos = new HashMap<Integer,int []>();for(int i = 0; i < m; i++){for (int j = 0; j < n; j++) {pos.put(mat[i][j], new int[]{i,j});}}//用rowCnt记录每一行被涂色的数目,colCnt同理;int[] rowCnt = new int[m];int[] colCnt = new int[n];//若有一行/列的数目等于m/n说明涂满了返回arr[i】for (int i = 0; i < arr.length; i++) {int row = pos.get(arr[i])[0];int col = pos.get(arr[i])[1];rowCnt[row]++;colCnt[col]++;if(rowCnt[row] == n){return i;}if(colCnt[col] == m){return i;}}return 0;}
}

几点注意事项:

  • 二维数组行数m = mat.length, n = mat[0].length

  • 定义value为数组的hashmap:

    Map<Integer, int[]> pos = new HashMap<Integer,int []>();
    
  • 插入hashMap:pos.put 没有s!!!

  • 查找hashMap: pos.get(key)

  • 这里不用在循环中找rowCnt是否满足条件,因为是一个加的过程,最先察觉到满足的肯定是自己的这一循环过程。

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

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

相关文章

【PixPin】媲美QQ/Snipaste截图贴图OCR工具

PixPin PixPin是一款截图工具&#xff0c;它集成了截图、长截图、贴图、标注、OCR识别等众多功能&#xff0c;软件体积小巧&#xff0c;使用简单&#xff0c;是一款非常棒的截图工具。之前使用过Snipaste工具的小伙伴用起来应该是得心应手。 从左往右的功能依次是&#xff1a;…

jetson nano网络配置(有线、无线、USB)

文章目录 网络配置&#xff08;有线、无线&#xff09;1.前言1.1 RJ451.2 无线网卡 2.有线连接2.1 连接方法2.2 检测连接状态 3.无线3.1 网卡安装步骤3.2 连接方法3.3 检测连接状态 4.通过USB 线控制Jetson Nano4.1 连接4.2 查看设备4.3 查看设备IP 网络配置&#xff08;有线、…

接口幂等+防重复提交+失败重试

1、接口幂等 接口幂等性就是用户对同一接口发起了一次或多次请求之后&#xff0c;对数据的影响是不变的&#xff0c;不会因为多次请求而产生不同的结果。 实现方案&#xff1a; 调用方传&#xff1a;参数UUID&#xff0c;当接口请求参数和UUID生成key&#xff0c;存到Redis状态…

ThinkPHP 2.x任意代码执行漏洞

任务一&#xff1a; 复现环境中的代码漏洞 任务二&#xff1a; 尝试利用代码执行漏洞读取服务器web目录下的文件列表。 任务一&#xff1a; 1.搭建环境&#xff1a; 2.在php环境下直接输入{${phpinfo}}测试代码片段 2.写入一句话木马&#xff0c;用antsword连接&#xff0…

【Java8系列07】Java8日期处理

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

安装nessus

此处建议使用香港服务器 docker pull ramisec/nessus docker run -itd --namenessus -p 18834:8834 ramisec/nessus docker exec -it nessus /bin/bash /nessus/update.sh 或下载拷贝插件包 docker cp all-2.0.tar.gz nessus:/nessus/ 更改Nessus镜像的默认密码 docker ex…

nodejs_vue+vscode美容理发店会员管理系统un1dm

按照设计开发一个系统的常用流程来描述系统&#xff0c;可以把系统分成分析阶段&#xff0c;设计阶段&#xff0c;实现阶段&#xff0c;测试阶段。所以在编写系统的说明文档时&#xff0c;根据系统所处的阶段来描述系统的内容。 绪论&#xff1a;这是对选题的背景&#xff0c;意…

IntelliJ IDEA详细完整安装教程

IntelliJ IDEA 是一款强大的Java集成开发环境&#xff0c;以下是安装和使用教程&#xff1a; 1. 下载IntelliJ IDEA&#xff1a;访问JetBrains官网&#xff08;jetbrains.com&#xff09;&#xff0c;点击“Download”按钮&#xff0c;选择适合自己操作系统的版本进行下载。 2.…

停止在 TypeScript 中使用 any 类型

停止在 TypeScript 中使用 any 类型 TypeScript 是 Web 开发人员中最常用的编程语言之一。它具有出色的语言功能&#xff0c;允许我们轻松设计可扩展的应用程序。因此&#xff0c;开发人员倾向于在项目中选择 TypeScript 而不是 JavaScript。 然而&#xff0c;在使用 TypeScr…

Python【寻找重复的数字】

要求&#xff1a; 给定一个包含n1个整数的数组nums&#xff0c;其数字在1到n之间&#xff08;包含1和n&#xff09;&#xff0c; 可知至少存在一个重复的整数&#xff0c;假设只有一个重复的整数&#xff0c; 请找出这个重复的数 代码如下&#xff1a; # 寻找重复数字…

【独家OD2023C卷真题】20天拿下华为OD笔试【排序】2023C-开源项目热榜【欧弟算法】全网注释最详细分类最全的华为OD真题题解

文章目录 题目描述与示例题目描述输入描述输出描述示例一输入输出说明 示例二输入输出说明 解题思路代码PythonJavaC时空复杂度 华为OD算法/大厂面试高频题算法练习冲刺训练 题目描述与示例 题目描述 某个开源社区希望将最近热度比较高的开源项目出一个榜单&#xff0c;推荐给…

Python全栈之基本数据类型详解

文章目录 1.注释2.输出3.变量4.命名规范5.变量的定义方式1.字符串类型2.数字类型3.List列表类型4.tuple 元组类型的定义5.Dict字典类型6.set集合类型7.数据类型转换8.自动类型转换9.强制类型转换关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品…

使用Dockerfile构建镜像遇到的异常分享:Failed to download metadata for repo ‘appstream‘

场景 使用自定义Dockerfile构建Redis镜像时&#xff0c;出现了异常 Dockerfile文件内容如下&#xff1a; FROM centos RUN ["yum","install","-y","gcc","gcc-c","net-tools","make"] WORKDIR /docke…

《opencv实用探索·七》一文看懂图像卷积运算

1、图像卷积使用场景 图像卷积是图像处理中的一种常用的算法&#xff0c;它是一种基本的滤波技术&#xff0c;通过卷积核&#xff08;也称为滤波器&#xff09;对图像进行操作&#xff0c;使用场景如下&#xff1a; 模糊&#xff08;Blur&#xff09;&#xff1a; 使用加权平…

模糊C均值(Fuzzy C-means,FCM)聚类的可运行的python程序代码,复制即可用!!切记需要安装库 scikit-fuzzy

文章目录 前言一、安装库 scikit-fuzzy二、具体程序代码&#xff08;复制可运行&#xff09;三、结果展示总结 前言 模糊C均值&#xff08;Fuzzy C-means&#xff0c;FCM&#xff09;聚类是一种软聚类方法&#xff0c;它允许数据点属于多个聚类&#xff0c;每个数据点对所有聚…

16.Oracle数据库Row_number() over()函数排序使用方法

1.原始数据(部分) SELECT * FROM SCOTT.EMP ; 2.使用Row_number() over() 函数,排序 SELECT EMPNO,ENAME,SAL,DEPTNO,Row_number() over( order by sal) rs FROM SCOTT.EMP ; 根据工资排序并添加序号 3.使用Row_number() over() 函数,分组并排序 SELECT EMPNO,ENAME,SAL,DEPTN…

Python语言学习笔记之七(JOSN应用)

本课程对于有其它语言基础的开发人员可以参考和学习&#xff0c;同时也是记录下来&#xff0c;为个人学习使用&#xff0c;文档中有此不当之处&#xff0c;请谅解。 1、认识Json JSON (JavaScript Obiect Notation)是一种轻量级的数据交换格式&#xff0c;它是ECMAScript的一…

笔记二十五、React中setState是同步还是异步的?

在react18版本之前setState既可以是同步也可以是异步的 在Promise的状态更新、js原生事件、定时器中是同步的 在react的合成事件中&#xff0c;是异步的 在react18版本之后是setState异步的 代码 import React, {Component} from react;class Async extends Component {state …

计算机网络测试题

一 单项选择题(5分) 1、假设要发送的数据为101110&#xff0c;采用CRC的生成多项式是X31&#xff0c;试求应添加在数据后面的余数。&#xff08;5分&#xff09; 110 011&#xff08;答案&#xff09; 101 001 实际得分&#xff1a;5分 二 填空题(95分) 1、以下3个子地址块…

json.decoder.JSONDecodeError: Extra data: line 1 column 332 (char 331)

项目场景&#xff1a; 提示&#xff1a;扩充数据集时&#xff0c;同步修改json标签中的"imagePath"字段的值&#xff0c;出现json文件读写不一致问题。 采用open函数读写模式修改json文件字段。open(jsonF.json, r)。 问题描述 运行修改json文件报错&#xff1a;j…