
题目
可以固定一个数,然后二分法遍历另外一个数。这样的复杂度为O(nlogn)。
另一种方法:双指针。一个指针指向开头,一个指向结尾。当两个指针指向的数的和大于target时,右指针左移。小于target时,左指针右移。等于target时,返回结果。
class Solution:
def twoSum(self, numbers, target: int) :
lp = 0
rp = len(numbers) - 1
while numbers[lp]+numbers[rp]!=target:
if numbers[lp]+numbers[rp]<target:
lp += 1
else:
rp -= 1
return [lp+1, rp+1]