给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复
时间: 2023-10-20 21:08:26 浏览: 86
两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个
你好,给定一个整数数组 nums 和一个整数目标值 target,要找到和为目标值 target 的两个整数并返回它们的数组下标,可以使用哈希表来解决这个问题。我们可以遍历数组,对于每一个元素,计算出需要的另一个数值,如果这个数值已经在哈希表中了,说明找到了两个数的和为目标值,直接返回它们的数组下标即可。如果没有找到,将当前元素的值和下标存入哈希表中,继续遍历后面的元素。以下是代码实现的例子:
```python
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
index_map = {}
for i in range(len(nums)):
complement = target - nums[i]
if complement in index_map:
return [index_map[complement], i]
index_map[nums[i]] = i
```
其中 index_map 是一个哈希表,用来存储数组中已经出现的元素的值和它们所在的下标。在遍历数组时,首先计算出需要的另一个数值 complement,如果 complement 出现在哈希表中,说明找到了两个数的和为目标值,直接返回它们的数组下标。如果 complement 没有出现在哈希表中,将当前元素的值和下标存入哈希表中,继续遍历后面的元素。
阅读全文