Rotate Matrix by 90 Degrees (Clockwise)?
void RotateMatrix(int[][] matrix)
int n = matrix.Length;
// Transpose
for (int i = 0; i < n; i++)
for (int j = i; j < n; j++)
(matrix[i][j], matrix[j][i]) = (matrix[j][i],
matrix[i][j]);
// Reverse each row
for (int i = 0; i < n; i++)
int left = 0, right = n - 1;
while (left < right)
(matrix[i][left], matrix[i][right]) = (matrix[i][right],
matrix[i][left]);
left++;
right--;
Explanation:
Transpose matrix and then reverse each row to rotate clockwise by 90°.