1. Two Sum
翻译:输入一个整数数组nums和target,在数组中找到两个整数,其和等于target。结果输出这两整数数组的位置。要求答案只有一个且数组中的整数不能用两次。
1、低效的方法:
class Solution:
def twoSum(self, nums: 'List[int]', target: 'int') -> '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]
2、优化后:定义一个字典dic,只要满足num和target-num能在dic中找到答案
class Solution:
def twoSum(self, nums: 'List[int]', target: 'int') -> 'List[int]':
dic = {}
# enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标
for i,num in enumerate(nums):
if num not in dic.keys():
dic[target-num] = i
else:
return [dic.get(num), i]