class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
seen = {}
for i, num in enumerate(nums):
complement = target - num
if complement in seen:
return [seen[complement], i]
seen[num] = i
return []
⚙️ 阶段7 · 逐行联动
7/8
i: -
num: -
complement: -
🚀 阶段8 · 迁移练习
8/8
迁移题:给定一个有序数组,返回两个数的下标(唯一解)。尝试用双指针 O(n) 解决。
示例:nums = [2, 7, 11, 15], target = 9 → [0, 1]
参考答案
left, right = 0, len(nums)-1
while left < right:
s = nums[left] + nums[right]
if s == target: return [left, right]
elif s < target: left += 1
else: right -= 1