C语言
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* twoSum(int* numbers, int numbersSize, int target, int* returnSize){
int s, e;
int *ret = NULL;
*returnSize = 0;
s = 0;
e = numbersSize - 1;
while (s < e) {
if ((numbers[s] + numbers[e]) > target) {
e--;
} else if ((numbers[s] + numbers[e]) < target) {
s++;
} else {
ret = calloc(2, sizeof(int));
ret[0] = s+1;
ret[1] = e+1;
*returnSize = 2;
return ret;
}
}
return NULL;
}
注意点
else
记得return ret
;- 数组下标从1开始;