给定数组a[]={2 ,3 ,4 ,5}
给定目标值target = 7;
找出所有和为target的两个数的组合;
eg:2 5
3 4
#include<iostream>
#include<vector>
#include<map>
using namespace std;
int main()
{
map<int, int> mapping;
vector<int> result;
vector<int> nums;
int target;
cin >> target;
int n;
cin >> n;
int a[n];
for (int i = 0; i < n; i++)
{
cin >> a[i];
mapping[a[i]] = i;
}
for (int i = 0; i < n; i++)
{
const int gap = target - a[i];
if (mapping.find(gap) != mapping.end() && mapping[gap] > i)
{
result.push_back(i);
result.push_back(mapping[gap]);
}
}
for (int i = 0; i < result.size(); i++)
cout << a[result[i]] << " ";
return 0;
}