#include <unordered_map>
#include <vector>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param info int整型vector
* @param target_weight int整型
* @return int整型vector
*/
vector<int> findWeightRelation(vector<int>& info, int target_weight) {
// write code here
// 方法一:双指针
// 因为题目有p1<p2,证明p1!=p2,所以使用哈希表不用担心元素相同的问题
// 方法二:哈希表
unordered_map<int, int> um;
for(int i=0; i<info.size(); ++i)
{
// 确保保留下标最小的重复元素
if(um.count(info[i])==0)
um[info[i]] = i;
}
vector<int> ans = {-1,-1};
// 再遍历一次
for(int i=0; i<info.size(); ++i)
{
cout << target_weight-info[i] << endl;
if(um.count(target_weight-info[i]) && i<um[target_weight-info[i]])
{
ans[0] = i+1;
ans[1] = um[target_weight-info[i]]+1;
break;
}
}
return ans;
}
};