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

哈希表和二维矩阵的结合-2352. 相等行列对(新思路、新解法)

题目链接及描述

. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。icon-default.png?t=N7T8https://leetcode.cn/problems/equal-row-and-column-pairs/description/?envType=study-plan-v2&envId=leetcode-75

题目分析

        最近几日在刷哈希表类型的题目,遇到了上面这道题目,我本身以为是要构建一个哈希表key、value分别为行、列,随后根据已有的map中的key、value步步迭代,将二维数组遍历完,能够求解题目需要的结果。随后编写的时候不仅比较难以实现,而且貌似有坑。所以查看了题解。

        题解中的做法非常通俗易懂,分为两步:

  1. 遍历二维数组的每一行,将每一行中的所有元素构建一个String字符串,将其作为key存入特定的map表中。value为特定的key(String)出现的次数。
  2. 遍历二维数组的每一列,将每一列中的所有元素构建一个String字符串,之后根据此key去map表中查找对应的value,随后将每一列查找得到的结果相加即为最终答案。

        遍历每一行根据其对应元素构建String比较简单,遍历每一列根据所有元素构建String可能有一点困难,参考实现如下;

for(int j = 0; j < grid.length; j++){StringBuilder sb = new StringBuilder();for(int[] arr : grid){sb.append(arr[j]).append("#");}String temp = sb.toString();
}

代码编写

class Solution {public int equalPairs(int[][] grid) {Map<String, Integer> map = new HashMap<>();// 将每一行转化为String的形式,并将其插入map中,key为String,value为个数for(int[] arr  : grid){StringBuilder sb = new StringBuilder();for(int num : arr){sb.append(num).append("#");}String temp = sb.toString();map.put(temp, map.getOrDefault(temp, 0) + 1);}int ans = 0;for(int j = 0; j < grid.length; j++){StringBuilder sb = new StringBuilder();for(int[] arr : grid){sb.append(arr[j]).append("#");}String temp = sb.toString();ans += map.getOrDefault(temp, 0);}return ans;}
}

参考链接

. - 力扣(LeetCode)

http://www.lryc.cn/news/365439.html

相关文章:

  • 深度学习中无监督学习
  • JVM基础知识
  • 618网购节,电商能挡住恶意网络爬虫的攻击吗?
  • Codeforces Round 951 (Div. 2) C、D(构造、线段树)
  • elmentUI el-table 总结行
  • 【大数据】计算引擎:Spark核心概念
  • Python | C# | MATLAB 库卡机器人微分运动学 | 欧拉-拉格朗日动力学 | 混合动力控制
  • Signac|成年小鼠大脑 单细胞ATAC分析(1)
  • 【POSIX】运行时so库动态加载
  • 爱普生SG2520CAA汽车电子中控专用晶振
  • Vue——监听器简单使用与注意事项
  • OpenCV的“画笔”功能
  • uniapp封装picker选择器组件,支持关键字查询
  • 智慧城市的规划与实施:科技引领城市运行效率新飞跃
  • Linux——内存管理代码分析
  • 手机自动化测试:4.通过appium inspector 获取相关app的信息,以某团为例,点击,搜索,获取数据等。
  • 个人项目———密码锁的实现
  • 关于Input【type=number】可以输入e问题及解决方案
  • zabbix“专家坐诊”第241期问答
  • 了解Kubernetes-RKE2的PKI以及证书存放位置
  • 利用大语言模型进行事实匹配
  • 【Stable Diffusion】(基础篇一)—— Stable Diffusion的安装
  • 维纳运动的概念
  • 毫秒级查询性能优化实践!Apache Doris 在极越汽车数字化运营和营销方向的解决方案
  • vllm 大模型量化微调推理使用: lora、gptq、awq
  • WPS/Office(Word、Excel、PPT) 自动测评方法
  • ArrayList——简单洗牌算法
  • springboot vue 开源 会员收银系统 (6) 收银台的搭建
  • 重排和重绘的区别,什么情况下会触发这两种情况
  • 亮点回顾|智能汽车芯片创新技术应用与质量研讨会