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

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.lryc.cn/news/250264.html

相关文章:

  • SpringBoot 整合Redis
  • tensorflow-gpu1.15 + win11 + RTX 4050环境配置
  • jmeter资料
  • 代码随想录算法训练营第三十六天| 435 无重叠区间 763 划分字母区间 56 合并区间
  • 2023-12-01 事业-代号s-引流技巧和营销思路
  • 反转链表的Java实现
  • 2022年1月14日 Go生态洞察:Go 1.18 新教程探索
  • 国内某知名半导体公司:实现虚拟化环境下的文件跨网安全交换
  • 14.Tomcat和HTTP协议-[一篇通]
  • 在线陪诊系统: 医疗科技的崭新前沿
  • MySQL的基础知识
  • 【EI会议征稿】第七届大数据与应用统计国际学术研讨会(ISBDAS 2024)
  • 最轻量级最完整的屏幕适配完全适配各个手机方案
  • IDEA安装python插件并配置
  • 简单的Python烟花代码,跨年了
  • 社区医院儿童疫苗接种管理系统设计与开发
  • Docker下安装Redis
  • 【python笔记】与网络编程相关的知识总结
  • 【libGDX】Mesh立方体贴图(6张图)
  • 数据爬取+数据可视化实战_哪里只得我共你(Dear Jane)_词云展示----网易云
  • spring事务管理快速入门(以转账为例)
  • 如何在VS2022上的MFC项目中操作Excel(VS2010、VS2012、VS2015、VS2017、VS2019使用方法一样)
  • 【Java8系列06】Java8数据计算
  • Andrioid T 实现充电动画(2)
  • 静态方法和属性的经典使用-单例设计模式
  • TCP七层协议
  • 规则引擎Drools使用,0基础入门规则引擎Drools(五)实战+决策表
  • Java后端开发——MVC商品管理程序
  • 【隐私计算】VOLE (Vector Oblivious Linear Evaluation)学习笔记
  • 国产linux单用户模式破解无密码登陆 (麒麟系统用户登录密码遗忘解决办法)