给定一组整数,还有一个目标数,在给定这组整数中找到两个数字,使其和为目标数,如找到,解是唯一的。找不到则显示 "no answer"。输出的下标按从小到大排序。用一重循环加字典实现
时间: 2023-05-04 16:01:06 浏览: 48
题目描述:给定一组整数,还有一个目标数,在给定这组整数中找到两个数字,使其和为目标数,并将其作为目标数,如找到,则解是唯一的。找不到则显示“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,符合题目要求。
相关问题
给定一个整数数组和一个目标值,在数组中找出和为目标值的那两个整数
给定一个整数数组和一个目标值,可以通过以下步骤在数组中找出和为目标值的那两个整数:
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
```
给定一个整数数组nums和一个整数目标值terget
给定一个整数数组 nums 和一个整数目标值 target,你可以使用两种方法来找出和为目标值 target 的两个整数的数组下标。
第一种方法是使用两个for循环来遍历数组中的每个元素,然后查找是否存在一个值与 target-num 的元素。如果存在,就返回它们的数组下标。这种方法被称为暴力法,因为它尝试所有可能的组合。,并在哈希表中查找是否存在这个差值。如果存在,就返回当前元素的索引和差值的索引。这种方法的时间复杂度是O(n),因为哈希表的查找操作是常数时间复杂度。