题目描述
给定一个整数数组 nums
和一个整数目标值 target
,请你在该数组中找出和为目标值 target
的那两个整数,并返回它们的数组下标。
题目保证只有一种答案,但是要求给定数组 nums
中的值不能重复出现。
输入输出格式
输入格式
第一行有一个整型数组;
第二行有一个整数。
输出格式
一行整形数组。
输入输出样例1
输入[2,7,11,15]
9
输出[0,1]
解释
输入数组中第一个元素 2
与第二个元素 7
之和等于 9
。因此输出 2
与 7
的下标 [0,1]
。
输入输出样例2
输入[3,2,4]
7
输出[0,2]
解释
输入数组中第一个元素 3
与第三个元素 4
之和等于 7
。因此输出 3
与 4
的下标 [0,2]
。
说明提示
2≤nums.length≤104
−109 ≤nums[i]≤109
−109 ≤target≤109
- 只会存在一个有效答案。
#暴力枚举 def twoSum(nums, target): n = len(nums) for i in range(n): for j in range(i + 1, n): if nums[i] + nums[j] == target: return [i, j] return [] #哈希表 def twoSum(nums, target): hashtable = dict() for i, num in enumerate(nums): if target - num in hashtable: return [hashtable[target - num], i] hashtable[nums[i]] = i return [] nums = eval(input()) target = int(input()) print(twoSum(nums, target))