leetcode-1 和为定值的两个数
题目描述:
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
解法一:暴力枚举,会超时
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
r = []
for i in range(len(nums)):
for j in range(len(nums)):
if i==j:
continue
if nums[i]+nums[j]==target:
return [i,j]
return False
解法二:利用python的字典
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
dict = {}
for i,v in enumerate(nums):
if target-v in dict.keys():
return [i,dict[target-v]]
else:
dict.setdefault(v,i)
return []