本文最后更新于:2020年11月17日 晚上

输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。

限制:

  • 1 <= nums.length <= 10^5
  • 1 <= nums[i] <= 10^6

复杂度分析:

  • 时间复杂度$O(N)$:$N$为数组$nums$的长度;双指针共同线性遍历整个数组。
  • 空间复杂度$O(1)$:变量$i,j$使用常数大小的额外空间。
class Solution:
	def twoSum(self, nums, target):
		i,j = 0, len(nums) - 1
		while i < j:
		s = nums[i] + nums[j]
		if s > target: j -= 1
		elif s < target: i += 1
		else: return nums[i], num[j]
		return []