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
运行结果