class Solution:
# @param {integer[]} nums
# @param {integer} target
# @return {integer[][]}
def fourSum(self, nums, target):
valMap = {}
ans = set()
nums.sort()
if len(nums) < 4:
return []
for i in range(0,len(nums)):
for j in range(i+1,len(nums)):
key = nums[i] + nums[j]
if valMap.has_key(key):
valMap[key].append((i,j))
else:
valMap[key] = []
valMap[key].append((i,j))
for i in range(0,len(nums)):
for j in range(i+1,len(nums)):
key = nums[i] + nums[j]
if valMap.has_key(target - key):
for sd in valMap[target-key]:
if sd[0] > j:
ans.add((nums[i],nums[j],nums[sd[0]],nums[sd[1]]))
res = []
for ele in ans:
res.append(list(ele))
return res
LeetCode #18 4Sum
最新推荐文章于 2019-09-19 15:05:45 发布