c语言如何找出相加等于目标值的整数
时间: 2024-10-21 07:14:12 浏览: 31
在C语言中,找出两个整数数组中哪些元素之和等于给定的目标值,通常可以使用哈希表(如数组或动态数据结构如链表)来实现,这被称为“两数之和”问题,也可以使用双指针法解决。这里是一个基本的解决方案:
```c
#include <stdio.h>
#include <stdbool.h>
bool findTwoSum(int nums[], int target, int n) {
// 创建一个空的哈希表(这里用数组作为简单的查找)
int sumTable[10001] = {0}; // 假设数值范围较小
// 遍历数组,将每个元素及其索引对应的和存入哈希表
for (int i = 0; i < n; i++) {
int complement = target - nums[i];
if (sumTable[complement] != 0) {
// 找到解,返回当前元素和哈希表对应元素的索引
return true;
}
sumTable[nums[i]] = i; // 如果元素在哈希表中不存在,就插入
}
// 没有找到解
return false;
}
int main() {
int nums[] = {2, 7, 11, 15};
int target = 9;
int n = sizeof(nums) / sizeof(nums[0]);
if (findTwoSum(nums, target, n)) {
printf("找到了,nums[sumTable[target-nums[i]]] 和 nums[%d]\n", nums[sumTable[target-nums[i]]]);
} else {
printf("没有找到满足条件的两个数。\n");
}
return 0;
}
```
这个程序首先遍历数组,检查每个元素的补数是否已经在哈希表中,如果存在,则说明找到了解;如果没有,就将当前元素及其索引添加到哈希表中。这种方法的时间复杂度是O(n),其中n是数组长度。
阅读全文
相关推荐


















