在python中,给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
时间: 2024-09-07 19:03:16 浏览: 48
Python面试编程题题目1-该数组中找出两个元素的和等于目标值,并返回这两个元素的索引
在 Python 中,解决这个问题可以使用哈希表(字典),这种方法的时间复杂度是 O(n),其中 n 是数组的长度。以下是简单的解决方案:
```python
def twoSum(nums, target):
"""
在整数数组 nums 中找到两个数,使得它们的和等于目标值 target
:param nums: 输入的整数数组
:param target: 目标和
:return: 两个数的下标组成的元组,若不存在这样的数对则返回空 tuple
"""
# 创建一个字典,用于存储每个元素及其对应的索引
num_dict = {}
# 遍历数组
for i, num in enumerate(nums):
# 计算目标值减去当前元素是否在字典中
complement = target - num
# 检查目标值的补数是否存在
if complement in num_dict:
# 找到了解,返回这两个数的索引
return (i, num_dict[complement])
# 更新字典,将当前元素和其索引作为键值对
num_dict[num] = i
# 如果遍历完整个数组都没有找到解,则返回空 tuple
return ()
# 测试示例
nums = [2, 7, 11, 15]
target = 9
result = twoSum(nums, target)
if result:
print(f"两个数的下标为:{result}")
else:
print("没有找到符合条件的数对")
```
阅读全文