Учитывая несортированный список уникальных строго положительных целых чисел, минимально сортируйте его в 2D матрицу. Гарантируется, что входной список будет составной длины, что означает, что выходная матрица не обязательно квадратная, но имеет размер n x m
с n,m > 1
.
«Минимально сортировать» здесь означает следующее:
- Сортировать список по возрастанию.
- Максимально сожмите выходную матрицу - минимизируйте сумму размеров матрицы (например, для
20
входных элементов в качестве входных данных требуется матрица a5x4
или4x5
output, а не a2x10
). - Уплотните отсортированные числа как можно дальше к верхнему левому углу матрицы, начиная с первого элемента в отсортированном списке.
- Это можно рассматривать как сортировку списка, затем разрезание его вдоль антидиагоналей матрицы, начиная с верхнего левого.
Примеры:
Для ввода- 1..20
вывода используется матрица 5x4 или 4x5 следующим образом:
1 2 4 7 11
3 5 8 12 15
6 9 13 16 18
10 14 17 19 20
1 2 4 7
3 5 8 11
6 9 12 15
10 13 16 18
14 17 19 20
Для ввода- [3, 5, 12, 9, 6, 11]
вывода используется 2x3 или 3x2 следующим образом
3 5 9
6 11 12
3 5
6 9
11 12
Для ввода [14, 20, 200, 33, 12, 1, 7, 99, 58]
, выход 3x3 следующим образом
1 7 14
12 20 58
33 99 200
Для ввода 1..10
вывод должен быть 2x5 или 5x2 следующим образом
1 2 4 6 8
3 5 7 9 10
1 2
3 4
5 6
7 8
9 10
Для ввода- [5, 9, 33, 65, 12, 7, 80, 42, 48, 30, 11, 57, 69, 92, 91]
вывода используется 5x3 или 3x5 следующим образом
5 7 11 33 57
9 12 42 65 80
30 48 69 91 92
5 7 11
9 12 33
30 42 57
48 65 80
69 91 92
правила
- Можно предположить, что ввод соответствует целочисленному типу вашего языка.
- Вход и выход могут быть заданы любым удобным способом .
- Либо полная программа или функция приемлемы. Если функция, вы можете вернуть вывод, а не распечатать его.
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).
15
тестовый пример элемента.