题目
Python
class Solution:
def twoSum(self, numbers: List[int], target: int) -> List[int]:
left, right = 0, len(numbers) - 1
while left < right:
if numbers[left] + numbers[right] < target:
left += 1
elif numbers[left] + numbers[right] > target:
right -= 1
else:
return [left+1, right+1]
Java
class Solution {
public int[] twoSum(int[] numbers, int target) {
int[] res = new int[]{-1, -1};
int left = 0, right = numbers.length - 1;
while (left < right) {
if (numbers[left] + numbers[right] == target) {
res[0] = left + 1;
res[1] = right + 1;
break;
} else if (numbers[left] + numbers[right] < target) {
++left;
} else {
--right;
}
}
return res;
}
}