给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。用python
时间: 2024-09-10 16:00:22 浏览: 29
两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个
这是一个经典的双指针问题,通常称为“两数之和”问题。你可以使用哈希表(Python 中的字典 dict)来解决。以下是 Python 代码的一个解决方案:
```python
def twoSum(nums, target):
# 创建一个空字典用于存储每个元素及其索引
num_dict = {}
# 遍历整个数组
for i, num in enumerate(nums):
# 如果目标值减去当前数字已经存在于字典中
if target - num in num_dict:
# 返回这两个元素的索引
return [num_dict[target - num], i]
# 将当前元素及其索引添加到字典中
num_dict[num] = i
# 如果找不到符合条件的组合,返回 None 或者抛出异常
return None
# 示例
nums = [2, 7, 11, 15]
target = 9
print(twoSum(nums, target)) # 输出:[0, 1]
```
在这个例子中,我们首先遍历列表,对于每一个元素,我们在字典中查找 `target - num` 是否存在,如果存在,说明我们找到了一对和为目标值的数,直接返回它们的索引。如果不存在,我们就将当前元素及其索引添加到字典中,继续搜索下一个元素。
阅读全文