Код Senior Матрицы обновлено

Обход матрицы по спирали

Условие

Верни элементы матрицы в порядке обхода по спирали от внешнего края к центру.

Примеры

spiralOrder([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) // [1, 2, 3, 6, 9, 8, 7, 4, 5]
spiralOrder([[1, 2, 3, 4]]) // [1, 2, 3, 4]
spiralOrder([[1], [2], [3]]) // [1, 2, 3]

Как подойти

Задача не про алгоритм, а про аккуратность с границами. Повторные проверки перед третьей и четвёртой сторонами обязательны: в матрице из одной строки или одного столбца без них элементы будут добавлены дважды. Это и есть тестовые случаи, которые интервьюер подсунет.

Подсказки: 2
  1. Веди четыре границы и сдвигай их после каждой стороны.
  2. Перед проходом снизу и слева границы надо перепроверять - иначе в узкой матрице элементы задвоятся.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.