C
源码
#include <stdio.h>
#include <malloc.h>
int *twoSum(int *nums, int numsSize, int target, int *returnSize)
{
int *result = NULL;
result = (int *)malloc(sizeof(int) * 2);
if (NULL == result)
return result;
for (int i = 0; i < numsSize - 1; i++)
{
for (int j = i + 1; j < numsSize; j++)
{
if (nums[i] + nums[j] == target)
{
result[0] = i;
result[1] = j;
*returnSize = 2;
return result;
}
}
}
return result;
}
int main(int argc, char *argv[])
{
int nums1[] = {-3, 10, 3, 34};
int nums2[] = {17, 2, 9, 17, 15, 7};
int returnSize = 0;
int *returnPtr = NULL;
returnPtr = twoSum(nums1, sizeof(nums1), 0, &returnSize);
if (returnPtr)
{
printf("%d %d\r\n", returnPtr[0], returnPtr[1]);
free(returnPtr);
returnPtr = NULL;
}
returnPtr = twoSum(nums2, sizeof(nums2), 9, &returnSize);
if (returnPtr)
{
printf("%d %d\r\n", returnPtr[0], returnPtr[1]);
free(returnPtr);
returnPtr = NULL;
}
return 0;
}
makefile
源码
twosum:twosum.o
gcc -o twosum twosum.c
.PHONY:clean
clean:
-rm twosum twosum.o
leetcode
运行结果