找出数组中和为目标值的两个数,并用C++代码来实现
时间: 2024-02-29 15:51:35 浏览: 131
好的,以下是使用 C++ 实现的代码:
```cpp
#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> hash_table;
for (int i = 0; i < nums.size(); i++) {
int delta = target - nums[i];
if (hash_table.count(delta)) {
return {hash_table[delta], i};
}
hash_table[nums[i]] = i;
}
return {};
}
int main() {
vector<int> nums = {2, 7, 11, 15};
int target = 9;
vector<int> result = twoSum(nums, target);
if (!result.empty()) {
cout << result[0] << " " << result[1] << endl;
}
return 0;
}
```
该代码首先定义了一个 vector 类型的 nums 数组和一个整型的 target 目标值。接着调用了名为 twoSum 的函数,该函数使用了 unordered_map 来实现哈希表,并返回了满足条件的两个数的下标。最后在主函数中输出了结果。
阅读全文