6、请设计一个函数,有两个参数分别为整数数组array和整数target,其功能在数组array中找出,和为目标值target的两个数,并返回它们的数组下标!(提示:返回双重数组,因为可能多个整数对的和为target)
时间: 2024-02-13 09:04:21 浏览: 64
好的,我可以帮你设计这个函数。以下是示例代码:
```python
def find_two_sum(array, target):
"""
在数组array中找到两个数,使它们的和等于target,并返回它们的数组下标
"""
result = []
# 建立一个字典,用于存储每个数及其下标
nums_dict = {}
for i, num in enumerate(array):
# 计算当前数与目标数之差
diff = target - num
# 如果字典中存在该差值,则说明找到了一对数
if diff in nums_dict:
# 添加这对数的下标到结果列表中
result.append([nums_dict[diff], i])
# 将当前数及其下标添加到字典中
nums_dict[num] = i
return result
```
这个函数会遍历整个数组,将每个数及其下标存储到一个字典中,并在遍历的过程中查找是否存在另一个数与当前数的和为目标值。如果找到了一对数,就将它们的下标加入到结果列表中。最后返回结果列表即可。
你可以按照以下方式调用该函数:
```python
array = [2, 7, 11, 15, 3, 6, 4]
target = 9
result = find_two_sum(array, target)
print(result) # 输出 [[0, 1], [4, 6]]
```
上述示例中,数组 `[2, 7, 11, 15, 3, 6, 4]` 中,有两对数的和为目标值 `9`,它们分别是 `(2, 7)` 和 `(4, 5)`,它们的下标分别是 `(0, 1)` 和 `(4, 6)`。因此该函数输出 `[[0, 1], [4, 6]]`。
阅读全文