用c语言双指针实现two sums的完整代码
时间: 2024-02-18 09:04:05 浏览: 27
下面是用C语言双指针实现two sums的完整代码:
```c
#include <stdio.h>
#include <stdlib.h>
int* twoSum(int* nums, int numsSize, int target) {
int i, j;
int *result = (int *)malloc(2 * sizeof(int)); // 分配动态内存空间
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 NULL;
}
int main() {
int nums[] = {2, 7, 11, 15};
int target = 9;
int *result = twoSum(nums, sizeof(nums) / sizeof(int), target);
if (result != NULL) {
printf("[%d, %d]\n", result[0], result[1]);
free(result); // 释放动态内存空间
}
return 0;
}
```
在这个实现中,我们使用了两个指针i和j来遍历数组,找到满足nums[i] + nums[j] == target的一组i和j,然后返回结果数组result。在main函数中,我们调用twoSum函数,并打印出结果,最后释放动态内存空间。