原题链接
哈希思路:
我们可以在输入 时把每个数存进哈希表里,对于每个输入的 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;
}