利用c++写一个俩数之和
时间: 2024-10-06 13:06:02 浏览: 20
一个C++写的桌面悬浮窗软件源码,用于显示当前网速、CPU及内存利用率.zip
5星 · 资源好评率100%
在C++中,你可以编写一个简单的程序来解决“寻找两个整数数组中的元素之和等于目标”的问题,这通常是一个常见的算法题,比如使用哈希表来优化查找过程。下面是一个基本的实现示例:
```cpp
#include <vector>
#include <unordered_map>
// 定义函数 findSum
int twoSum(std::vector<int>& nums, int target) {
// 创建一个哈希表存储每个数字及其索引
std::unordered_map<int, int> hashTable;
// 遍历输入数组
for (size_t i = 0; i < nums.size(); ++i) {
int complement = target - nums[i];
// 如果找到互补的元素,返回它们的索引
if (hashTable.find(complement) != hashTable.end()) {
return std::min(hashTable[complement], i); // 返回较小的索引
}
// 将当前元素及其索引添加到哈希表中
hashTable[nums[i]] = i;
}
// 没有找到解决方案,返回 -1 或者抛出异常
return -1;
}
int main() {
std::vector<int> nums = {2, 7, 11, 15};
int target = 9;
int sumIndex = twoSum(nums, target);
if (sumIndex != -1) {
std::cout << "Two numbers with sum " << target << " are at indices " << sumIndex << " and " << hashTable[target - nums[sumIndex]];
} else {
std::cout << "No pair found with given target.";
}
return 0;
}
```
阅读全文