华为OD机试真题-二元组个数【2023.Q1】

题目描述

给定两个数组a,b,若a[i] == b[j] 则称 [i, j] 为一个二元组,求在给定的两个数组中,二元组的个数。
输入描述:
第一行输入 m
第二行输入m个数,表示第一个数组
第三行输入 n
第四行输入n个数,表示第二个数组
输出描述:
二元组个数。
示例1:
输入:
4
1 2 3 4
1
1
输出:
1
示例2:
输入:
4
1 1 2 2
3
2 2 4
输出:
4

解题思路

使用两个 HashMap 分别存储数组 a 和数组 b 中元素的出现次数。HashMapkey是元素,value为该元素出现的次数。
遍历数组 a 对应的 HashMap。对于每个元素,检查该元素是否在数组 b 的 HashMap 中存在。如果存在,则将数组 a 中元素的出现次数乘以数组 b 中元素的出现次数,累加到结果中。

参考代码

import<

你可能感兴趣的:(Python,JS),java,算法,开发语言,华为,深度优先)