# 1. 两数之和
# 简单
# 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
# 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。
# 你可以按任意顺序返回答案。
### 新建dict,遍历数组,将和与每个元素n的差值作为key,n的下标i作为value,存到dict里。遍历中发现dict的某个键不为空,即解决。
### 时间复杂度 O(n)
from typing import List
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
d = {}
for i, n in enumerate(nums):
if d.get(n) is not None:
return [i, d.get(n)]
d[target - n] = i