18. 4Sum (Medium) - TengnanYao/daily_leetcode GitHub Wiki
class Solution(object):
def fourSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[List[int]]
"""
nums.sort()
result = []
n = len(nums)
for i in range(n):
for j in range(i + 1, n):
l, r = j + 1, n - 1
t = target - nums[i] - nums[j]
while l < r:
if nums[l] + nums[r] == t:
if [nums[i], nums[j], nums[l], nums[r]] not in result:
result.append([nums[i], nums[j], nums[l], nums[r]])
l += 1
r -= 1
elif nums[l] + nums[r] > t:
r -= 1
else:
l += 1
return result