给定一个整数数组 nums
和一个整数目标值 target
,请你在该数组中找出和为目标target
的那俩个整数,并返回它们的数组下标。
#include <stdio.h>
#include <stdlib.h>
/*func:找到数组中和为target的两个数,并返回数组下标,
*
*/
int* twoSum(int* nums, int numsSize, int target, int* returnSize)
{
int i,j;
for( i = 0 ; i < numsSize; i++ )
{
for( j = i+1; j < numsSize;j++ )
{
if( nums[i] + nums[j] == target )
{
int *ret = (int *)malloc(sizeof(int ) * 2);
ret[0] = i;
ret[1] = j;
*returnSize = 2;
return ret;
}
}
if( j < numsSize-1 )
break;
}
*returnSize = 0;
return NULL;
}
int main()
{
int nums[] = {2,7,11,15};
int returnsize;
int target = 9;
int *ret = twoSum(nums,sizeof(nums)/sizeof(int),target,&returnsize);
if( NULL != ret )
{
printf("nums[%d] + nums[%d] = %d\n",ret[0],ret[1],target);
}
return 0;
}
nums[0] + nums[1] = 9