Python列表元组求两数之和 给定一个整数列表nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的列表索引。每种输入只需要对应一个答案。但是,你不能 重复使用这个数组中同样位置的元素。如果没找到解,输出Fail
时间: 2024-02-26 09:27:12 浏览: 156
可以使用哈希表来解决该问题,具体实现步骤如下:
1. 创建一个空字典,用于存储每个数值对应的索引。
2. 遍历列表中的每个数值,对于当前数值,计算出与目标值的差值。
3. 判断该差值是否已经在字典中存在,如果存在,则说明找到了一组符合条件的数值,直接返回它们的索引。
4. 如果差值不存在字典中,则将当前数值及其索引加入字典中,继续遍历下一个数值。
5. 如果遍历结束仍未找到符合条件的数值,则输出 Fail。
具体实现代码如下:
```python
def twoSum(nums, target):
dict = {}
for i in range(len(nums)):
diff = target - nums[i]
if diff in dict:
return [dict[diff], i]
dict[nums[i]] = i
return "Fail"
# 测试
nums = [2, 7, 11, 15]
target = 9
print(twoSum(nums, target)) # 输出 [0, 1]
```
阅读全文