Ctrl K

Разлить список по спирали

Средняя
Даны размеры таблицы rows × cols и голова односвязного списка head с неотрицательными числами. Заполните таблицу значениями списка по порядку, двигаясь по спирали: из левого верхнего угла вправо, у края или перед уже заполненной клеткой поворачивая по часовой стрелке. Если значения закончились раньше, чем клетки, все незаполненные клетки должны содержать -1. Верните получившуюся таблицу.
Пример 1
rows=3, cols=3, head=list_node([4, 0, 7, 2, 9, 5]) → [[4, 0, 7], [-1, -1, 2], [-1, 5, 9]]

Верхняя строка получает 4, 0, 7; правый столбец ниже — 2 и 9; затем 5 встаёт в нижний ряд посередине. Оставшиеся три клетки — -1.

Пример 2
rows=2, cols=2, head=list_node([8, 3, 6, 1]) → [[8, 3], [1, 6]]

Значений ровно столько, сколько клеток: 8 и 3 сверху, 6 в правом нижнем углу, 1 — слева от него.

Пример 3
rows=1, cols=4, head=list_node([10]) → [[10, -1, -1, -1]]
Ограничения
  • 1 ≤ rows, cols
  • rows · cols ≤ 10⁵
  • В списке от 1 до rows · cols узлов
  • 0 ≤ Node.val ≤ 1000
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЧтение по спирали СредняяКвадрат, пронумерованный по спирали СредняяСледующий шаг колонии клеток СредняяЗигзаг по диагоналям СредняяТри в ряд до упора Средняя
загружаем Python…
Вход
rows=3, cols=3, head=list_node([4, 0, 7, 2, 9, 5])
Ожидается
[[4, 0, 7], [-1, -1, 2], [-1, 5, 9]]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 101 тест на сервере, включая скрытые.