你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
两次遍历
class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ for i in range(len(nums)): for j in range(i+1, len(nums)): if nums[i] + nums[j] == target: return [i, j] return通过迭代将元素添加到哈希表中,同时我们比较该元素的对应元素是否已经存在与哈希表中,如果存在,我们直接返回答案。
图解 哈希表
class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: hashmap = {} for idx, num in enumerate(nums): if target - num in hashmap: return [hashmap[target - num],idx] else: hashmap[num] = idx