描述
这个题目说的是,给你一个整数数组和一个目标值,你要找到数组里两个整数, 它们的和等于目标值。然后返回这两个整数的下标。
比如说给你的整数数组是:
1, 2, 3, 6, 8, 11
目标值是 10。那么,满足条件的两个整数是,2 和 8,它们的和是 10。所以你要返回它们的下标是 1 和 4。
思路:
- 二次循环遍历,时间复杂度O(n^2),代码不展示;
- 哈希 map,将值和索引的键值对存储起来,遍历一次,并根据target-当前值是否存在于map中来判断即可。
python代码示例。
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
data = {}
n = len(nums)
for i in range(n):
if target - nums[i] not in data:
data[nums[i]] = i
else:
return [data[target - nums[i]], i]
return [-1, -1]