- 这道题目是给定一个数组和一个特定的整数,如果数组里的两项相加结果为所给特定整数,则输出这两项的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关联容器采用哈希表结构
unordered_map<int, int> hash;
vector<int> result;
for (int i = 0; i < numbers.size(); i++) {
int numberToFind = target - numbers[i];
//要找的number在的话,则加入result,直到遍历到结束
if (hash.find(numberToFind) != hash.end()) {
result.insert(result.begin(),i);
result.insert(result.begin(),hash[numberToFind] );
return result;
}
//没有找到则加入
hash[numbers[i]] = i;
//由于这里开始hash为空,后来随着遍历逐渐加入,所以result结果为倒序
}
return result;
}
};
Two Sum
最新推荐文章于 2024-04-07 20:30:43 发布