题目分析:
这道题目是给定一个整数数组,判断是否可以使它的两个元素相加到特定目标并返回两个数字的索引。
代码说明:
开始想到了双重循环遍历,果然时间超限,这种情况可以建立一个字典用一次循环解决问题。循环取出nums里面的数字,使用target - nums[i]结果在keys里就证明成立了,不然就把nums[i]加入字典,注意是用数值作为下标,i作为字典里的数值。
测试代码:
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
keys = {}
for i in range(len(nums)):
if target - nums[i] in keys:
return [keys[target - nums[i]], i]
if nums[i] not in keys:
keys[nums[i]] = i
nums = [2,3,5,7,11,15]
target = 9
print(Solution().twoSum(nums, target))#提交时请删除该行