内蒙古包头做网站的公司,集团门户网站建设,如何自己搭建微信小程序,一个人的网站建设题目链接及描述
. - 力扣#xff08;LeetCode#xff09;. - 备战技术面试#xff1f;力扣提供海量技术面试资源#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/equal-row-and-column-pairs/description/?envTypest…题目链接及描述
. - 力扣LeetCode. - 备战技术面试力扣提供海量技术面试资源帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/equal-row-and-column-pairs/description/?envTypestudy-plan-v2envIdleetcode-75 题目分析 最近几日在刷哈希表类型的题目遇到了上面这道题目我本身以为是要构建一个哈希表key、value分别为行、列随后根据已有的map中的key、value步步迭代将二维数组遍历完能够求解题目需要的结果。随后编写的时候不仅比较难以实现而且貌似有坑。所以查看了题解。 题解中的做法非常通俗易懂分为两步
遍历二维数组的每一行将每一行中的所有元素构建一个String字符串将其作为key存入特定的map表中。value为特定的keyString出现的次数。遍历二维数组的每一列将每一列中的所有元素构建一个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) {MapString, Integer map new HashMap();// 将每一行转化为String的形式并将其插入map中key为Stringvalue为个数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