原题链接
哈希思路:
我们可以在输入 时把每个数存进哈希表里,对于每个输入的 b[i]看看 x−b[i]是否出现与哈希表即可。
图解
#include <iostream>
#include <algorithm>
#include <unordered_map>
using namespace std;
const int N = 111111;
int n,m,x,a[N],b[N];
unordered_map<int,int> h;
int main()
{
cin>>n>>m>>x;
for(int i=0;i<n;i++)
{
cin>>a[i];
h[a[i]] = i;
}
for(int i=0;i<m;i++)
{
cin>>b[i];
if(h.count(x-b[i]))
cout<<h[x-b[i]]<<" "<<i<<endl;
}
return 0;
}