问题描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同一个元素进行求和。用C语言写出来
时间: 2023-10-20 14:26:02 浏览: 87
C语言程序设计-求两个整数a与b之和
以下是用 C 语言实现的一种解法:
```c
int* twoSum(int* nums, int numsSize, int target, int* returnSize){
int i, j;
int* result = (int*)malloc(2 * sizeof(int));
*returnSize = 2;
for(i = 0; i < numsSize - 1; i++){
for(j = i + 1; j < numsSize; j++){
if(nums[i] + nums[j] == target){
result[0] = i;
result[1] = j;
return result;
}
}
}
return result;
}
```
该函数的参数解释如下:
- `nums`: 整数数组的首地址
- `numsSize`: 整数数组的长度
- `target`: 目标值
- `returnSize`: 返回数组的长度
该函数的实现思路是,通过两层循环遍历整个数组,查找两个数的和是否等于目标值。如果找到了这样的一组数,就将它们的下标存入结果数组中并返回。如果遍历完整个数组还没有找到这样的一组数,就返回一个空数组。
需要注意的是,由于该函数返回的是动态分配的内存,需要在使用完返回值后手动释放内存,以避免内存泄漏的问题。
阅读全文