题目:
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
int* twoSum(int* nums, int numsSize, int target, int* returnSize)
{
*returnSize = 2;//返回的下标数组里边只能有两个数
int *back = NULL;
for(int i = 0; i<numsSize; i++)
for(int j = i+1; j<numsSize; j++)
{
if (*(nums+i)+*(nums+j) == target)
{
back=(int*)malloc(sizeof(int)*2);
back[0]=i;
back[1]=j;
return back;
}
}
return ;
}
注:malloc 是 c 语言中的动态分配内存,result=(int*)malloc(sizeof(int)*2); malloc 函数返回的是 void* 型,所以要强制类型转换成 int,在前面加上 (int *),才能给整型赋值,后面 (sizeof(int)*2) 的意思是分配两个 int 大小的空间;