相关问题
1. Two Sum
15. 3Sum
16. 3Sum Closest
18. 4Sum
454. 4Sum II
Discription
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums1 = 2 + 7 = 9,
return [0, 1].
思路
哈希表
遍历过程中使用哈希表记录每个出现的元素。如果其“互补”元素已经出现,则构成一组解。
时间复杂度:
O(n)
空间复杂度:
O(n)
代码
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> res;
unordered_map<int, int> hash;
for (int i = 0; i < nums.size(); i++)
{
int val = target - nums[i];
if (hash.find(val) == hash.end())
hash[nums[i]] = i;
else
{
res.push_back(i);
res.push_back(hash[val]);
}
}
return res;
}
};

本文介绍了一个经典的编程面试题——TwoSum问题。问题要求在给定的整数数组中找到两个数,使它们的和等于特定的目标值,并返回这两个数的索引。文章详细解释了如何利用哈希表来高效解决这一问题,时间复杂度为O(n),空间复杂度也为O(n)。

被折叠的 条评论
为什么被折叠?



