// Prints the matrix to the console
function printMatrix(matrix) {
matrix.forEach(row => console.log(row.join(" ")));
}
/**
* Rotates a square matrix 90 degrees to the left (counterclockwise).
* @param {number[][]} matrix - The square matrix to rotate.
*/
function rotateMatrix90DegreesLeft(matrix) {
const len = matrix.length;
// Perform the rotation in-place
for (let layer = 0; layer < Math.floor(len / 2); layer++) {
const first = layer;
const last = len - 1 - layer;
for (let i = first; i < last; i++) {
const offset = i - first;
// Save the top element
const top = matrix[first][i];
// Move right to top
matrix[first][i] = matrix[i][last];
// Move bottom to right
matrix[i][last] = matrix[last][last - offset];
// Move left to bottom
matrix[last][last - offset] = matrix[last - offset][first];
// Move top to left
matrix[last - offset][first] = top;
}
}
}
const matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
rotateMatrix90DegreesLeft(matrix);
console.log("Matrix After 90° Left Rotation:");
printMatrix(matrix);
/*
run:
Matrix After 90° Left Rotation:
3 6 9
2 5 8
1 4 7
*/