LeetCode 3Sum python
阿新 • • 發佈:2018-11-05
from collections import defaultdict class Solution: def threeSum(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ nums.sort() d=defaultdict(int) s=defaultdict(int) solution=[] for x in nums: d[x]+=1 for i,first in enumerate(nums): d[first]-=1 if first >0: break if i>0 and nums[i] == nums[i-1]: continue for j,second in enumerate(nums[i+1:]):#range(i+1,len(nums)): if -first-second == second: if d[-first-second]-1 > 0 and -first-second >= second: if s[first,second]==0: solution.append([first,second,-first-second]) s[first,second]+=1 if -first-second != second: if d[-first-second] > 0 and -first-second >= second: if s[first,second]==0: solution.append([first,second,-first-second]) s[first,second]+=1 return solution