好久不刷leetcode,又见两数之和。
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
#dict = {}
for i, n in enumerate(nums):
#dict[n]=i
if target - n in dict:
return [dict[target-n],i]
dict[n]=i
#dict[n]=i 不能放在if前面的原因:
# 1. 如果target是相同的两个数之和,target - n 在dict会错误的找到自己
# 2. 如果list里存在相同的数字,则dict里面添加多次,而dict索引对应的key值时候,只取最后一个/最新加入的。如图,不满足需求。