classSolution: deftwoSum(self, nums, target): for i, a in enumerate(nums): for j, b in enumerate(nums): if i!=j and a+b == target: return (i,j)
2. 先过滤掉明显不可能的元素,再粗暴,下标会变啊喂!【错误】
1 2 3 4 5 6 7
classSolution: deftwoSum(self, nums, target): nums = list( filter(lambda x: x <= target, nums) ) for i, a in enumerate(nums): for j, b in enumerate(nums): if i!=j and a+b == target: return (i,j)
3.使用字典,hash查找速度666【通过】
1 2 3 4 5 6 7 8
classSolution: deftwoSum(self, nums, target): tmp = {} for i, a in enumerate(nums): if target-a in tmp: return (tmp[target-a], i) else: tmp[a] = i