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; }