// Programming challenge: rotating a matrix 90 degrees in place // Original post: https://blog.svpino.com/2015/05/10/programming-challenge-rotating-a-matrix-90-degrees-in-place public class RotatingMatrix90DegreesInPlace { private static int[][] matrix = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 }, { 13, 14, 15, 16 } }; private final static int N = 4; private static void print() { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { System.out.print("\t" + matrix[i][j]); } System.out.println(); } System.out.println(); } public static void main(String[] args) { print(); for (int ring = 0; ring < N / 2; ring++) { int farthest = N - ring - 1; for (int i = ring; i < farthest; i++) { int temp = matrix[ring][i]; matrix[ring][i] = matrix[farthest - i + ring][ring]; matrix[farthest - i + ring][ring] = matrix[farthest][farthest - i + ring]; matrix[farthest][farthest - i + ring] = matrix[i][farthest]; matrix[i][farthest] = temp; } } print(); } }