编写代码实现给定一个数组和目标,找出求和为目标数的组合
时间: 2024-10-25 19:04:53 浏览: 43
为了在一个数组中找到两个元素之和等于给定的目标值,我们可以使用哈希表的数据结构来解决这个问题,这种方法叫做“两数之和”问题,也被称为“双指针法”。以下是使用Python语言的一个简单实现:
```python
def two_sum(nums, target):
# 创建一个空字典用于存储每个元素及其索引
num_dict = {}
# 遍历数组
for i, num in enumerate(nums):
# 检查目标值减去当前元素是否已经在字典中
complement = target - num
if complement in num_dict:
# 找到匹配,返回这两个元素的索引
return [num_dict[complement], i]
# 如果当前元素不在字典中,将其添加并记录下索引
num_dict[num] = i
# 如果没有找到匹配,返回None 或者列表形式的未找到结果
return None
# 示例
nums = [2, 7, 11, 15]
target = 9
print(two_sum(nums, target)) # 输出: [0, 1],因为 nums[0] + nums[1] = 2 + 7 = 9
```
在这个例子中,我们遍历输入数组`nums`,对于每个元素`num`,我们在`num_dict`中查找`target - num`是否存在。如果存在,说明我们找到了一对元素相加等于目标;如果不存在,我们就把当前元素及其索引添加到字典中继续搜索。
阅读全文