【leetcode - 1】两数之和 easy

 

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

 

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

 

解答: 使用enumerate非常便捷,返回元素值对应的ind,由于每个输入只有一种答案,所以在形成字典的时候,可以判断剩下的数在不在已经形成的字典里,如果在,返回,如果不在,继续添加新元素。为了防止一个元素使用两遍,在判断之后再添加当前元素。

1 class Solution:
2     def twoSum(self, nums: List[int], target: int) -> List[int]:
3         dicts = {}
4         for i, j in enumerate(nums):
5             if target-j in dicts:
6                 return [i,dicts[target-j]]
7             dicts[j]=i
View Code

 

posted @ 2020-10-12 14:36  Akassy  阅读(61)  评论(0)    收藏  举报