统计匹配的二元组个数
题目
给定两个数组A和B,若数组A的某个元素A[i]与数组B中某个元素B[j]满足 A[i] == B[j],则寻找到一个值匹配的二元组(i,j)。 请统计在这两个数组A和B中,一共存在多少个这样的二元组。
输入描述
第一行输入数组A的长度M,
第二行输入数组B的长度N,
第三行输入数组A的值,
第四行输入数组B的值
输出描述
输出匹配的二元组个数
备注
若不存在相等的值,则输出0。 所采用的算法复杂度需小于O(N^2),否则会超时。 输入数组中允许出现重复数字,一个数字可以匹配多次
用例
用例一:
输入:
5
4
1 2 3 4 5
4 3 2 1
输出:
4
用例二:
输入:
6
3
1 2 4 4 2 1
1 2 3
输出:
4
解题思路
简单题,双层for循环遍历判断下标ij是否满足元素A[i]=B[j],如果是,个数加1,输出总个数
代码
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> c,d;
int a,b;
int count=0;
cin>>a>>b;
for(int i=0;i<a;i++)//输入数据到c,d数组中
{
int t;
cin>>t;
c.push_back(t);
}
for(int j=0;j<b;j++)
{
int t1;
cin>>t1;
d.push_back(t1);
}
for(int i=0;i<a;i++)//输出满足题目条件的结果
{
for(int j=0;j<b;j++)
{
if(c[i]==d[j])
count++;
}
}
cout<<count<<endl;
}