Таким образом, вы получаете только одну переменную в python:
array = [ [1,2,3], [4,5,6], [7,8,9], [10,11] ]
Вы хотите иметь возможность возвращать список массивов, содержащих только 1 элемент из каждого элемента этого array
.
Поэтому в этом случае наш ответ будет следующим:
ans = [[1, 4, 7, 10], [1, 4, 7, 11], [1, 4, 8, 10], [1, 4, 8, 11], [1, 4, 9, 10], [1, 4, 9, 11], [1, 5, 7, 10], [1, 5, 7, 11], [1, 5, 8, 10], [1, 5, 8, 11], [1, 5, 9, 10], [1, 5, 9, 11], [1, 6, 7, 10], [1, 6, 7, 11], [1, 6, 8, 10], [1, 6, 8, 11], [1, 6, 9, 10], [1, 6, 9, 11], [2, 4, 7, 10], [2, 4, 7, 11], [2, 4, 8, 10], [2, 4, 8, 11], [2, 4, 9, 10], [2, 4, 9, 11], [2, 5, 7, 10], [2, 5, 7, 11], [2, 5, 8, 10], [2, 5, 8, 11], [2, 5, 9, 10], [2, 5, 9, 11], [2, 6, 7, 10], [2, 6, 7, 11], [2, 6, 8, 10], [2, 6, 8, 11], [2, 6, 9, 10], [2, 6, 9, 11], [3, 4, 7, 10], [3, 4, 7, 11], [3, 4, 8, 10], [3, 4, 8, 11], [3, 4, 9, 10], [3, 4, 9, 11], [3, 5, 7, 10], [3, 5, 7, 11], [3, 5, 8, 10], [3, 5, 8, 11], [3, 5, 9, 10], [3, 5, 9, 11], [3, 6, 7, 10], [3, 6, 7, 11], [3, 6, 8, 10], [3, 6, 8, 11], [3, 6, 9, 10], [3, 6, 9, 11]]
Я бы хотел подчеркнуть, что вы не знает количество подмассивов, и единственный ввод, который вы получаете - это переменная array
.
Я думал о написании функции, которая рекурсивно вызывает себя для извлечения элементов из произвольного числа массивов, ноЯ не мог понять логику для этого.
Как можно решить эту проблему?
Я хочу знать ответ на эту проблему, потому что это часть более крупного вопроса, в котором вынеобходимо точно выбрать 1 элемент из каждого массива переменной array
, чтобы разница в значениях максимум и минимум элементов, которые являютсявыбрано общее минимальное .
В случае array = [ [1,2,3], [4,5,6], [7,8,9], [10,11] ]
ответом будет 7 , который мы получим, выбрав, например, (3, 5, 8, 10).
Есть ли другой способподойти к этой проблеме, не генерируя все перестановки всех элементов?