给定一个长度为n的序列a1,a2,……,an,以及一个整数x,请找到一组i,j,满足:
1.1≤i,j≤n
2.ai-aj=x
输入输出格式
输入
第一行两个整数n和x
第二行n个整数ai
输出
一行,两个整数和j,空格分开。
保证答案存在,如果有多组答案满足条件,输出任意一组即可。
WA了一个点,看看我的代码,并改正
```c++
#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;
pair<int, int> findPair(vector<int>& nums, int target) {
unordered_map<int, int> numIndex;
for (int i = 0; i < nums.size(); i++) {
int complement = nums[i] - target;
if (numIndex.count(complement) > 0) {
return make_pair(numIndex[complement] + 1, i + 1);
}
numIndex[nums[i]] = i;
}
return make_pair(-1, -1); // 序列中不存在满足条件的元素
}
int main() {
int n, x;
cin >> n >> x;
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
pair<int, int> result = findPair(nums, x);
if(nums[result.first]-nums[result.second]==x)
cout << result.first << " " << result.second << endl;
else if(nums[result.first]-nums[result.second]!=x)
cout << result.second << " " << result.first << endl;
return 0;
}
```