问题描述:
给定一个整形数组nums,一个整形目标值target。从nums中找到两个数,使其和等于target。返回这两个整数的索引。本题假定结果存在且唯一。
以下为C++代码,Accepted。本人菜鸟一个,欢迎大家指正。
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> ret;
map<int, vector<int>::size_type> hmap;
for (vector<int>::size_type ix = 0; ix != nums.size(); ix++) {
int value = target - nums[ix];
if (hmap.count(value)) {
ret.push_back(hmap[value]);
ret.push_back(ix);
break;
}
else {
hmap.insert(map<int, vector<int>::size_type>::value_type(nums[ix], ix));
}
}
return ret;
}
};