两数之和

给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

/**

* Note: The returned array must be malloced, assume caller calls free().

*/

int* twoSum(int* nums, int numsSize, int target, int* returnSize){

    int* d = NULL;

    int i,j;

    if (!nums || !returnSize)

    {

        return NULL;

    }

    *returnSize = 0;

    if (numsSize < 2)

    {

        return NULL;

    }

    d = malloc(sizeof(int)*3);

    if (!d)

    {

        return NULL;

    }

    for (i=0; i < numsSize; i ++)

    {

        for (j=i+1; j < numsSize; j++)

        {

            if (nums[i] + nums[j] == target)

            {

                *returnSize = 2;

                d[0] = i;

                d[1] = j;

                d[2] = -1;

                return d;

            }

        }

    }

    return 0;

}

你可能感兴趣的:(两数之和)