Дан слайс целых чисел nums и число target. Найдите все уникальные
четвёрки значений [a, b, c, d] таких, что они стоят на четырёх разных позициях
в nums и a + b + c + d == target.
Две четвёрки считаются одинаковыми, если совпадают как мультимножества значений.
Порядок четвёрок в ответе и порядок чисел внутри четвёрки — любые.
// FourSum возвращает все уникальные четвёрки значений с суммой target.
func FourSum(nums []int, target int) [][4]int
Примеры
nums=[1, 0, -1, 0, -2, 2], target=0 → [[-2,-1,1,2], [-2,0,0,2], [-1,0,0,1]]
nums=[2, 2, 2, 2, 2], target=8 → [[2,2,2,2]]
nums=[1, 2, 3], target=6 → []
Ограничения
0 ≤ len(nums) ≤ 1000, |nums[i]| ≤ 10⁹, |target| ≤ 4·10⁹.
- Ожидается O(n³). Перебор всех четвёрок O(n⁴) не проходит по времени.
- Входной слайс не изменять.