题目:给定一个整数数组 nums
和一个整数目标值 target
,请你在该数组中找出 和为目标值 target
的那 两个 整数,并返回它们的数组下标。
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
# 1.创建一个空字典,
dict1 = {}
# 2.计算输入的列表的总长度
length = len(nums)
for i in range(length//2+1):
out1 = target - nums[i] # nums[i]是从左开始取值
out2 = target - nums[length-i-1] # nums[length-i-1] 是从右开始取值
# 3.如果out1不在字典中,即out1+num[i]不等于target,则记录nums[i]的值和index
if out1 not in dict1:
dict1[nums[i]] = i
# 4.否则的话就说明找到了两个数加起来等于target,所以就返回这两个数的坐标
else:
return [dict1[out1], i]
# 5.同理对out2也是同样的
if out2 not in dict1:
dict1[nums[length-i-1]] = length-i-1
else:
return [dict1[out2], length-i-1]