定义一个整型数组array和一个整数target,找出(输出)数组array中两个数的和与乘为target的所有组合
时间: 2024-10-08 17:00:43 浏览: 31
leetcode2sumc-array_leetcode:leetcode刷题总结,此部分是array
这个问题是要寻找数组`array`中的一对整数,它们的和等于目标值`target`,同时这两个数相乘的结果也等于目标值。这是一个经典的“两数之和”以及“双指针”算法的问题。解决这个问题的一种常见方法是使用哈希表(如Python中的字典)辅助查找。
以下是使用Python的一个简单示例:
```python
def find_combinations(array, target):
if len(array) < 2:
return []
# 创建一个空列表存储结果
result = []
# 使用哈希表记录每个元素及其索引
hash_map = {0: -1} # 初始化,0 的前驱是 -1
# 遍历数组
for i in range(len(array)):
complement = target - array[i]
# 如果目标减去当前元素存在哈希表中,找到一对解
if complement in hash_map:
result.append((array[hash_map[complement]], array[i]))
# 更新哈希表,将当前元素及其索引加入
hash_map[array[i]] = i
return result
# 示例
array = [2, 7, 11, 15]
target = 9
result = find_combinations(array, target)
print(f"找到满足条件的组合:{result}")
阅读全文