/18. 4Sum

18. 4Sum

Medium
Arrays40.2% acceptance

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

Example 1

Input: input_array = [3, 1, 2, 0, -1, -2], sum_target = 2

Output: [[0,1,3,-2],[0,2,3,-3],[1,2,0,-1]]

Explanation: Quadruplets that sum to 2 are shown.

Example 2

Input: input_array = [5, 5, 5, 5, 5], sum_target = 20

Output: [[5,5,5,5]]

Explanation: Only one quadruplet possible.

Constraints

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

Case 1

Input: input_array = [4, 0, -4, 2, -2, 1], sum_target = 2

Expected: [[-4,0,4,2],[-2,0,4,0],[-2,1,2,1]]

Case 2

Input: input_array = [1, 1, 1, 1], sum_target = 4

Expected: [[1,1,1,1]]

Case 3

Input: input_array = [10, -10, 0, 5, -5], sum_target = 0

Expected: [[-10,-5,5,10],[-10,0,5,5],[-5,0,5,0]]