一、题目描述
给定两个数组A和B,若数组A的某个元素A[i]与数组B中的某个元素B[j]满足 A[i] == B[j], 则寻找到一个值匹配的二元组(i, j). 请统计在这两个数组A和B中,一共存在多少个这样的二元组。
二、输入描述
- 第一行输入数组A的长度M;
- 第二行输入数组B的长度N;
- 第三行输入数组A的值;
- 第四行输入数组B的值。
1 <= M, N <= 100000
A, B数组中数值的取值均小于100000;
三、输出描述
输出匹配的二元组个数。
补充说明
若不存在相等的值,则输出0. 所采用的算法复杂度需小于O(N^2),否则会超时。输入数组中允许出现重复数字,一个数字可以匹配多次。
四、测试用例
测试用例1
1、输入
5
4
1 1 2 2 3
1 2 1 3
2、输出
7
3、说明
数组 A 中数字频率:1→2, 2→2, 3→1
数组 B 中数字分别为:[1, 2, 1, 3]
匹配统计:
数字 1:B中出
这篇博客介绍了华为在线开发者(OD)机试的一道真题,要求统计数组A和B中匹配的二元组个数。题目要求算法复杂度小于O(N^2),博主提供了Java解题思路和源码,通过Java8 Stream表达式实现,并展示了输入输出示例,匹配的二元组总数为2。
订阅专栏 解锁全文
1537

被折叠的 条评论
为什么被折叠?



