利用字典编程实现如下功能:给定一组整数和一个目标数,在给定这组整数中找到两个数字,使其和为目标数,如找到,输出找到的两个数的下标(输出的下标按从小到大排序);如找不到,则显示 "no answer"。
时间: 2023-06-13 20:03:35 浏览: 99
下面是实现代码:
```python
def two_sum(nums, target):
lookup = {}
for i, num in enumerate(nums):
if target - num in lookup:
return [lookup[target - num], i]
lookup[num] = i
return "no answer"
```
其中,`nums` 为给定的整数列表,`target` 为目标数。函数 `two_sum` 通过遍历整数列表,将每个整数与目标数的差值作为 key,下标作为 value 存储在字典 `lookup` 中。在遍历过程中,如果发现当前整数与某个 key 对应的 value 的和为目标数,则说明找到了两个数字,可以直接返回这两个数字的下标。如果遍历完整个列表仍未找到两个数字的和为目标数,则返回 "no answer"。
相关问题
给定一个整数数组和一个目标值,在数组中找出和为目标值的那两个整数
给定一个整数数组和一个目标值,可以通过以下步骤在数组中找出和为目标值的那两个整数:
1. 创建一个空字典,用于存储每个元素的值和它的索引。
2. 遍历数组中的每个元素:
- 检查目标值减去当前元素的差是否已经存在于字典中。
- 如果存在,说明找到了两个数的和为目标值,返回它们的索引。
- 如果不存在,将当前元素的值和索引添加到字典中。
以下是用于实现上述步骤的Python代码:
```python
def twoSum(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
```
给定一组整数,还有一个目标数,在给定这组整数中找到两个数字,使其和为目标数,如找到,解是唯一的。找不到则显示 "no answer"。输出的下标按从小到大排序。用一重循环加字典实现
题目描述:给定一组整数,还有一个目标数,在给定这组整数中找到两个数字,使其和为目标数,并将其作为目标数,如找到,则解是唯一的。找不到则显示“no answer”。输出的下标按从小到大排序。用一重循环加字符实现。
解答:假设给定的整数是nums,目标数是target。我们可以利用循环遍历nums中的每一个数字,并在循环内部再使用一重循环查找与当前数字匹配的数字,使它们的和等于目标数。如果找到,我们就将找到的数字的下标作为结果输出,并退出循环。如果遍历完了整个数组仍然没有找到匹配的数字,则输出“no answer”。
实现代码如下:
```python
nums = [1, 2, 5, 7, 9, 10]
target = 12
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i] + nums[j] == target:
print(i, j)
break
else:
continue
break
else:
print("no answer")
```
输出结果为:
```
1 4
```
其中,数字1和4分别对应数字2和9,在数组中的下标分别为1和4,符合题目要求。