Выбор ответа Middle Матрицы обновлено

Поворот матрицы на месте

Вопрос

Как повернуть квадратную матрицу n × n на 90° по часовой стрелке на месте?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Транспонировать матрицу, затем развернуть каждую строку. Транспонирование плюс разворот строк даёт поворот по часовой.

Варианты ответа

  1. Развернуть каждую строку, это и есть поворот на 90°
  2. Развернуть порядок строк, затем ещё раз развернуть порядок строк
  3. Транспонировать матрицу, затем развернуть каждую строкуправильный ответ
  4. Транспонировать матрицу дважды подряд по главной диагонали

Разбор

Транспонирование плюс разворот строк даёт поворот по часовой. O(n²) времени, O(1) доп. памяти. (Разворот порядка строк и затем транспонирование тоже даёт поворот по часовой.)

  • Разворот строк это зеркало по вертикали.
  • Двойной разворот строк возвращает исходную матрицу.
  • Двойное транспонирование тоже.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.