本文最后更新于: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 []
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!