编写python代码:给定一组整数,还有一个目标数,在给定这组整数中找到两个数字,使其和为目标数,如找到,解是唯一的。找不到则显示 “no answer" 。输出的下标按从 小到大排序。用一重循环加字典实现。
时间: 2024-12-24 09:35:09 浏览: 14
在Python中,你可以使用一个字典来存储每个数字及其索引,然后遍历一次列表,对于每个元素,检查目标数减去它的值是否已经在字典中。如果在,那么找到了一对符合条件的数,返回它们的索引;如果不在,则更新字典,继续寻找。以下是一个示例代码:
```python
def find_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] # 返回两个数的索引
else:
# 更新字典,将当前数及其索引添加进去
num_dict[num] = i
# 如果遍历结束都没有找到答案,返回 "no answer"
return "no answer"
# 示例输入
nums = [2, 7, 11, 15]
target = 9
result = find_two_sum(nums, target)
print("答案:", result)
```
在这个例子中,如果输入是 `nums = [2, 7, 11, 15]` 和 `target = 9`,函数会找到索引为0和2的元素 (2+7=9),并按照从小到大的顺序返回结果。
阅读全文