/18. 4Sum

18. 4Sum

Medium
Arrays40.2% acceptance

Given an integer array arr and an integer sum_target, return a list of all unique quadruplets [arr[i], arr[j], arr[k], arr[l]] such that: 0 <= i, j, k, l < len(arr), i, j, k, l are distinct, and arr[i] + arr[j] + arr[k] + arr[l] == sum_target. The order of quadruplets in the output does not matter.

Example 1

Input: arr = [3, 1, 4, 2, 5, 0], sum_target = 10

Output: [[1,2,3,4],[0,1,4,5]]

Explanation: Quadruplets [1,2,3,4] and [0,1,4,5] both sum to 10.

Example 2

Input: arr = [-1, -1, -1, -1, 4], sum_target = 1

Output: [[-1,-1,-1,4]]

Explanation: Only quadruplet [-1,-1,-1,4] sums to 1.

Constraints

  • 1 <= len(arr) <= 200
  • -109 <= arr[i] <= 109 for all i
  • -109 <= sum_target <= 109
Python (current runtime)

Case 1

Input: arr = [7, 6, 5, 4, 3, 2, 1], sum_target = 22

Expected: [[4,5,6,7]]

Case 2

Input: arr = [0, 0, 0, 0, 0], sum_target = 0

Expected: [[0,0,0,0]]

Case 3

Input: arr = [10, -10, 20, -20, 0], sum_target = 0

Expected: [[-20,-10,10,20]]

Case 4

Input: arr = [1, 2, 3, 4], sum_target = 15

Expected: []

Case 5

Input: arr = [1000000000, -1000000000, 0, 0, 0], sum_target = 0

Expected: [[-1000000000,0,0,1000000000]]