给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。用python
时间: 2023-08-14 20:32:22 浏览: 131
js代码-给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/two-sum 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
好的,这是一个比较常见的算法题,可以使用哈希表来解决。以下是Python实现的代码:
```python
def twoSum(nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
# 定义一个空字典
hashmap = {}
# 遍历数组
for i, num in enumerate(nums):
# 计算当前值与目标值的差值
diff = target - num
# 如果差值已经存在于字典中,说明已经找到了答案,返回结果
if diff in hashmap:
return [hashmap[diff], i]
# 如果差值不存在于字典中,将当前值及其下标添加到字典中
hashmap[num] = i
# 如果没有找到答案,则返回空列表
return []
```
这个函数接收一个整数数组 `nums` 和一个整数目标值 `target`,返回一个列表,列表中包含和为目标值的两个整数的下标。
算法的时间复杂度为 O(n),空间复杂度为 O(n),其中 n 是数组的长度。
阅读全文