1、题目描述
输入一个数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。
如果有多对数字的和等于s,输出任意一对即可。
你可以认为每组输入中都至少含有一组满足条件的输出。
样例:
输入:[1,2,3,4] , sum=7
输出:[3,4]
2、问题描述:
3、问题关键:
- 建立一个hash表,hash.count(target - nums[i]), 表示找到了一对,那么直接返回,否则将hash.insert(nums[i]).
4、C++代码:
class Solution {
public:
vector<int> findNumbersWithSum(vector<int>& nums, int target) {
unordered_set<int> hash;
for (int i = 0; i < nums.size(); i ++) {
if (hash.count(target - nums[i])) return vector<int> {target - nums[i], nums[i]};
hash.insert(nums[i]);
}
return vector<int> ();
}
};
网友评论