- 暴力解法容易超时;
- 定义multiset存放数组;
- 判断当前遍历值和set内已有元素之和是否满足条件;
- 如果找到满足要求的元素,返回该元素和当前遍历值;
- 否则,将当前遍历值加入set;
- 遍历完后,没有满足条件,返回空数组。
class Solution {
public:
vector<int> FindNumbersWithSum(vector<int> array,int sum) {
unordered_multiset<int> set;
for (int i = 0; i < array.size(); i++) {
auto iter = set.find(sum - array[i]);
if (iter != set.end()) {
return {*iter, array[i]};
}
set.insert(array[i]);
}
return {};
}
};