leetcode

1.Two Sum

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.

Example:

Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

UPDATE (2016/2/13):
The return format had been changed to zero-based indices. Please read the above updated description carefully.

#include <stdio.h>
#include <stdlib.h>
int* twoS(int* nums,int numsize,int target)
{
    int i=0;
    int j=numsize-1;
    int sum;
    int* res=(int*)malloc(2*sizeof(int));
    if(nums==NULL)
    {
        return NULL;
    }
    while(i<j)
    {
        if(target==nums[i]+nums[j])
        {
            res[0]=nums[i];
            res[1]=nums[j];
            return res;
        }
        else if(target>nums[i]+nums[j])
        {
            i++;
        }
        else
        {
            j--;
        }
    }
    return NULL;
}
int main()
{
    int a[]={2,3,7,11,15};
    //printf("%d\n",sizeof(a));
    int* p;
    p=twoS(a,4,9);
    if(p!=NULL)
    {
        printf("%d....%d",p[0],p[1]);
    }else
    {
        printf("NULLLLL");
    }
    free(p);
    return 0;
}