Существует ли элегантный алгоритм для поворота 4×4 матрицы на 90 градусов? var a = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]; Мне нужно привести из такого вида0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15в такой вид0 4 8 12 1 5 9 13 2 6 10 14 3 7 11 15 Я могу с помощью двух циклов и условий, но есть может способ примитивнее?
Да, существует более элегантный способ поворота матрицы на 90 градусов. Вы можете использовать следующий алгоритм:
Транспонируйте матрицу (поменяйте строки и столбцы местами).Реверсируйте каждую строку матрицы.Пример реализации на JavaScript:
function rotateMatrix(matrix) {// Транспонирование матрицы
for (let i = 0; i < matrix.length; i++) {
for (let j = 0; j < i; j++) {
[matrix[i][j], matrix[j][i]] = [matrix[j][i], matrix[i][j]];
}
}
// Реверсия каждой строки матрицы
matrix.forEach(row => row.reverse());
return matrix;
}
var matrix = [
[0, 1, 2, 3],
[4, 5, 6, 7],
[8, 9, 10, 11],
[12, 13, 14, 15]
];
console.log(rotateMatrix(matrix));
Этот алгоритм поможет вам быстро и элегантно повернуть 4x4 матрицу на 90 градусов.