用C++求给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
时间: 2024-10-20 18:15:02 浏览: 23
c++-c++编程基础之leetcode题解第18题四数之和.zip
这个问题可以使用哈希表(unordered_map 或者 C++ STL 中的 map)来解决,称为“两数之和”(Two Sum)的经典算法。以下是简单的C++解决方案:
```cpp
#include <unordered_map>
using namespace std;
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> map;
for (int i = 0; i < nums.size(); i++) {
int complement = target - nums[i];
if (map.find(complement) != map.end()) {
return {map[complement], i};
}
map[nums[i]] = i;
}
throw runtime_error("No pair found with given sum");
}
// 示例
vector<int> result = twoSum({2, 7, 11, 15}, 9);
cout << "Indices of the numbers are: " << result[0] << ", " << result[1] << endl; // 输出: 0, 1
阅读全文