出一道关于查找的题目和对应代码
时间: 2024-03-25 14:35:30 浏览: 42
顺序查找、拆分查找等的代码
题目:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。假设每个输入只对应一种答案,并且同样的元素不能被重复利用。
示例:
输入:nums = [2, 7, 11, 15], target = 9
输出:[0, 1]
解释:nums[0] + nums[1] = 2 + 7 = 9,因此返回 [0, 1]
代码:
```python
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
hash_map = {}
for i, num in enumerate(nums):
if target - num in hash_map:
return [hash_map[target - num], i]
hash_map[num] = i
```
时间复杂度:O(n),其中 n 是数组中的元素数量。对于每一个元素 x,我们可以 O(1) 地寻找 target - x。
阅读全文