- Two Sum II - Input Array Is Sorted
分别从两头向中间比较。
int* twoSum(int* numbers, int numbersSize, int target, int* returnSize) {
int i;
int minIndex = 0;
int maxIndex = numbersSize - 1;
*returnSize=2;
int* result = (char*)malloc(2*sizeof(int));
for(i = 0; i < numbersSize; i++){
if(numbers[minIndex] + numbers[maxIndex] == target){
result[0]=minIndex + 1;
result[1]=maxIndex + 1;
return result;
}
if(numbers[minIndex] + numbers[maxIndex] > target){
maxIndex--;
}
if(numbers[minIndex] + numbers[maxIndex] < target){
minIndex++;
}
}
return result;
}