- 这道题目是给定一个数组和一个特定的整数,如果数组里的两项相加结果为所给特定整数,则输出这两项的index.
- 例如num=[2,7,11,15],特定整数为9,则2+7=9。输出为[1,2]。
- 所使用的unordered_map关联容器采用哈希表结构,例如hash[123],既number123所对应的index。
- 具体思路如下代码和注释。
class Solution {
public:
vector<int> twoSum(vector<int> &numbers, int target)
{
unordered_map<int, int> hash;
vector<int> result;
for (int i = 0; i < numbers.size(); i++) {
int numberToFind = target - numbers[i];
if (hash.find(numberToFind) != hash.end()) {
result.insert(result.begin(),i);
result.insert(result.begin(),hash[numberToFind] );
return result;
}
hash[numbers[i]] = i;
}
return result;
}
};