给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出“和”为目标值的两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案,数组中元素不能重复输入。 请根据上面的要求,编写相应的算法,将右边的函数 twoSum() 补充完整。
时间: 2024-09-27 20:00:52 浏览: 54
两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个
这个问题描述的是经典的"两数之和"(Two Sum)问题,它可以用哈希表(Hash Table)或者双指针(Two Pointers)的解决方案来解决。以下是使用 Python 编程语言实现的 `twoSum()` 函数:
```python
def twoSum(nums, target):
# 创建一个空的字典用于存储每个数字及其索引
hash_table = {}
# 遍历数组
for i, num in enumerate(nums):
# 如果目标值减去当前数字已经存在于字典中
if target - num in hash_table:
# 返回这两个数字对应的索引
return [hash_table[target - num], i]
# 否则,将当前数字及其索引添加到字典中
hash_table[num] = i
# 如果找不到符合条件的两个数,返回 None 或者抛出异常
return None # 假设这里需要处理这种情况
```
这个函数首先初始化一个空的哈希表,然后遍历数组。对于每个元素,如果目标值减去它已经在哈希表中,则找到了一对满足条件的数;如果没有找到,就将当前元素和它的索引加入哈希表。如果没有匹配的数字对,函数将返回 `None`。
阅读全文