Программа Javascript для поворота матрицы на 180 градусов
Задача состоит в том, чтобы, имея квадратную матрицу, повернуть ее на 180 градусов против часовой стрелки, не занимая дополнительного пространства.
Примеры :
Input : 1 2 3 4 5 6 7 8 9 Output : 9 8 7 6 5 4 3 2 1 Input : 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 Output : 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1
Метод: 1 (печатает только повернутую матрицу)
Решение этой проблемы состоит в том, что для поворота матрицы на 180 градусов мы можем легко выполнить этот шаг.
Matrix = a00 a01 a02 a10 a11 a12 a20 a21 a22 when we rotate it by 90 degree then matrix is Matrix = a02 a12 a22 a01 a11 a21 a00 a10 a20 when we rotate it by again 90 degree then matrix is Matrix = a22 a21 a20 a12 a11 a10 a02 a01 a00
Из приведенного выше рисунка мы получаем, что если просто повернуть матрицу на 180 градусов, нам придется печатать данную матрицу в обратном порядке.
Выход :
9 8 7 6 5 4 3 2 1
Временная сложность: O(N*N)
Вспомогательное пространство: O(1)
Метод: 2 (вращение на месте)
Есть четыре шага:
1- Найдите транспонированную матрицу.
2- Обратные столбцы транспонирования.
3- Найдите транспонированную матрицу.
4- Обратные столбцы транспонирования
Let the given matrix be 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 First we find transpose. 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 Then we reverse elements of every column. 4 8 12 16 3 7 11 15 2 6 10 14 1 5 9 13 then transpose again 4 3 2 1 8 7 6 5 12 11 10 9 16 15 14 13 Then we reverse elements of every column again 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
Выход :
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
Временная сложность: O(R*C)
Вспомогательное пространство: O(1)
В приведенном выше коде транспонирование матрицы должно быть найдено дважды, а также столбцы должны быть перевернуты дважды.
Таким образом, у нас может быть лучшее решение.
Способ : 3 (переключение позиций)
Здесь мы меняем значения в соответствующих позициях.
Выход :
25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
Временная сложность: O(R*C)
Вспомогательное пространство: O(1)
Пожалуйста, обратитесь к полной статье о повороте матрицы на 180 градусов для получения более подробной информации!