class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
result = []
nums.sort()
for i in range(len(nums)):
front = i
rear = len(nums)-1
while front < rear:
sum = nums[front] + nums[rear]
if sum == target:
result.append(sum)
return result
elif sum < target:
front += 1
else:
rear -= 1
此题与三数之和的双指针法有细微差别。
三数之和连接
leetcode-master/0015.三数之和.md at master · youngyangyang04/leetcode-master · GitHub
三数之和要求返回数组元素即可,而两数之和需要返回元素下标。然而,在这两道题中,双指针法只是用于排好序之后的数组,即数组原索引下标已经失效,故不适用于1.Two Sum。 除非Two Sum要求返回两数之和,否则不适用。