Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].
C code:
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* twoSum(int* nums, int numsSize, int target) {
int* p;
int i, j;
p = malloc(sizeof(int)*2);
for(i = 0; i < numsSize; i++)
for(j = 0; j < numsSize; j++)
{
if(nums[i] + nums[j] == target && i != j)
{
p[0] = j;
p[1] = i;
break;
}
}
return p;
}
Submission Result: Accepted
题目是说给一个int *twoSum()函数,参数为指向整型数组的指针、数组的大小和一个数据,从数组中找到任意两个数相加起来等于从主函数传来的实参,返回数组中这两个数的下标(note:下标不能相同,必须是两个不同的数相加)。