我无法通过使用Python的3sum问题的leetcode时间限制测试。有人能做到吗?谢谢!
我的现有代码:
class Solution:
def threeSum(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
solution=[]
for i in range(len(nums)):
tmp={}
for j in range(1+i,len(nums)):
if -(nums[j]+nums[i]) in tmp:
solution.append(tuple(sorted((nums[j],nums[i],-(nums[j]+nums[i])))))
else:
tmp[nums[j]]=j
return list(set(solution))
4条答案
按热度按时间b5lpy0ml1#
不知道你的解决方案有什么问题。我认为诀窍是将结果对象视为multisets,在python中称为
collections.Counter
。我们也可以使用itertools.combinations
来完成从输入中获取所有3的组合。测试:
t40tm48m2#
mwg9r5ms3#
我的解决方案有点不同:
结果:
gkl3eglg4#
也许不是最有效的方法,但它很简单。
很高兴它有帮助!如果有任何疑问请评论。