#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param numbers int整型一维数组 
# @param target int整型 
# @return int整型一维数组
#
class Solution:
    def twoSum(self , numbers: List[int], target: int) -> List[int]:
        # write code here
        dic = dict()#存储列表中的各数与其下标。数值:下标
        ans = list()#存储构成目标值的两个数的下标
        for i, x in enumerate(numbers):#遍历整个列表,寻找能凑成目标值的两个数
            v = target-x#寻找当前数值的互补值
            if v in dic:#当前数值匹配的目标值,已经被遍历过,则直接当前数值的下标,与已经遍历过的数的下标
                ans += [dic[v]+1,i+1]
            dic[x] = i#当前数值在已遍历过的数值中无匹配数值
        return sorted(ans)