#include
#include
#include
class Solution {
public:
vector
map
for (int i = 0; i < nums.size(); i++) {
int num = target - nums[i];//记录一下target减去当前数字的值
if (map.find(num) != map.end()) //哈希表查找存在,执行if语体
{
return { map[num],i };
}//如果在哈希表map找到该值,直接返回这个组合
else {
map[nums[i]] = i;
}//如果没找到,将当前数字加入哈希表map
}//遍历数组(vector容器数组)中的每一个数字
return {-1,-1};//最后for遍历循环结束还没有找到,说明这个数字不存在
}
};
int main() {
Solution solution;
vector
vector
int target = 9;
position = solution.twoSum(arr, target);
for (auto i : position)
cout << i << endl;
return 0;
}
/*5 2 3 7 8 设target值为9
0 1 2 3 4
i=0,num=4,map[5]=0, 在map里面 数值5 对应下标为0
i = 1,num = 7,return 直接返回map[7],1 跳出来 map[7]对应的下标为3,故返回{ 1,3 }*/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)