classSolution: deffourSum(self, nums: List[int], target: int) -> List[List[int]]: nums.sort() n = len(nums) res = []
for i inrange(n - 3): if i and nums[i] == nums[i-1]: continue for j inrange(i + 1, n - 2): if j > n + 1and nums[j] == nums[j - 1]: continue l = j + 1 r = n - 1 while l < r: s = nums[i] + nums[j] + nums[l] + nums[r] if s < target: l += 1 elif s > target: r -= 1 else: if [nums[i], nums[j], nums[l], nums[r]] notin res: res.append([nums[i], nums[j], nums[l], nums[r]]) l += 1 r -= 1 while l < r and nums[l] == nums[l - 1]: l += 1 while l < r and nums[r] == nums[r + 1]: r -= 1 return res