题目链接
解法
我们可以使用哈希表用空间换时间,遍历整个数组,每次遍历到的数与之前的某个数之和符合要求,则结束遍历,否则将其加入到哈希表中继续遍历。
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> heap;
for (int i = 0; i < nums.size(); i ++) {
int r = target - nums[i];
if (heap.count(r)) return {heap[r], i};
heap[nums[i]] = i;
}
return {};
}
};