#include <unordered_set>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @param target int整型
* @return int整型vector
*/
vector<int> twoSum(vector<int>& nums, int target) {
// write code here
//先建立一个unordered_set容器存放数组a,方便后续查找是否在a中存在这个数
unordered_set<int> uset(nums.begin(), nums.end());
vector<int>::iterator it;//构建迭代器
int i, j;//用来存放结果下标
int nums_j;//存储第二个数的值
//遍历序列nums
for(it = nums.begin(); it != nums.end(); it++){
if(uset.count(target - *it)){//如果*it能配对成功的数在序列中存在则获取到i的值并终止循环
i = it - nums.begin() + 1;
nums_j = target - *it;
break;
}
}
//继续遍历下去得到j的值
for(it = nums.begin() + i; it != nums.end(); it++){
if(*it == nums_j){
j = it - nums.begin() + 1;
break;
}
}
//返回结果
vector<int> res = {i , j};
return res;
}
};