请用c语言写下面的代码,要求如下:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案
时间: 2023-03-14 19:35:30 浏览: 104
#include<stdio.h>
int* twoSum(int* nums, int numsSize, int target) {
int i, j;
int* res = malloc(2 * sizeof(int)); //用于存放结果
for (i = 0; i < numsSize; i++) {
for (j = i + 1; j < numsSize; j++) {
if (nums[i] + nums[j] == target) {
res[0] = i;
res[1] = j;
return res;
}
}
}
return NULL;
}
相关问题
用C语言实现:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
好的,下面是用C语言实现的代码:
```c
int* twoSum(int* nums, int numsSize, int target, int* returnSize){
int i, j;
int* res = (int*)malloc(sizeof(int) * 2);
*returnSize = 2;
for(i = 0; i < numsSize - 1; i++){
for(j = i + 1; j < numsSize; j++){
if(nums[i] + nums[j] == target){
res[0] = i;
res[1] = j;
return res;
}
}
}
return NULL;
}
```
这段代码使用了双重循环,依次遍历数组中的每一个元素,找到其中两个元素的和等于目标值,返回它们的下标。
问题描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同一个元素进行求和。用C语言写出来
以下是用 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`: 返回数组的长度
该函数的实现思路是,通过两层循环遍历整个数组,查找两个数的和是否等于目标值。如果找到了这样的一组数,就将它们的下标存入结果数组中并返回。如果遍历完整个数组还没有找到这样的一组数,就返回一个空数组。
需要注意的是,由于该函数返回的是动态分配的内存,需要在使用完返回值后手动释放内存,以避免内存泄漏的问题。
阅读全文