给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。
时间: 2023-10-20 18:08:35 浏览: 41
python 实现给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)
5星 · 资源好评率100%
这个问题是经典的 Two Sum 问题,可以使用哈希表来解决。首先遍历一遍数组,将每个数值和它对应的下标存入哈希表中。然后再遍历一遍数组,对于每个数值,计算目标值与该数值的差值,然后在哈希表中查找是否存在该差值,如果存在,则说明找到了一组解,返回对应的下标即可。具体实现可以参考以下代码:
```python
def twoSum(nums, target):
hash_map = {}
for i, num in enumerate(nums):
hash_map[num] = i
for i, num in enumerate(nums):
complement = target - num
if complement in hash_map and hash_map[complement] != i:
return [i, hash_map[complement]]
return []
```
时间复杂度为 O(n),空间复杂度为 O(n)。
阅读全文