Categories
interview

Rotate Image

Javascript (ES6) code to rotate a Image or a 2D square matrix in place:

const rotate = (matrix) => {
  const n = matrix.length;
  for (let layer = 0; layer < Math.floor(n / 2); layer++) {
    for (let i = layer; i < n - layer - 1; i++) {
      const temp = matrix[layer][i];
      matrix[layer][i] = matrix[n - i - 1][layer];
      matrix[n - i - 1][layer] = matrix[n - layer - 1][n - i - 1];
      matrix[n - layer - 1][n - i - 1] = matrix[i][n - layer - 1];
      matrix[i][n - layer - 1] = temp;
    }
  }
};

Demo

Output


rotate([
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9],
]);

/*
[
  [7, 4, 1],
  [8, 5, 2],
  [9, 6, 3],
]
*/