how to rotate a matrix 90 degrees clockwise in java

www‮‬.lautturi.com
how to rotate a matrix 90 degrees clockwise in java
/**
 * @author lautturi.com 
 * Java example: rotate a matrix 90 degrees clockwise in java
 */

import java.util.*;

public class Lautturi {
	public static void main(String[] args) {
		int matrix[][] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8, 13 }, { 9, 10, 11, 12 } };

		// print the matrix/2d-array in java
		for (int[] subarray : matrix) {
			for (int element : subarray) {
				System.out.printf("%5d", element);
			}
			System.out.println();
		}

		// rotate the matrix/2d-array 90 degrees in java

		int maxrows = matrix.length;
		int maxcols = 0;
		for (int row = 0; row < maxrows; row++) {
			maxcols = matrix[row].length > maxcols ? matrix[row].length : maxcols;
		}
		int newMatrix[][] = new int[maxcols][maxrows];
		for (int col = 0; col < maxcols; col++) {
			for (int row = 0; row < maxrows; row++) {
				int oriCols = matrix[row].length;
				if (col < oriCols)
					newMatrix[col][row] = matrix[maxrows - 1 - row][col];
				// else
				// newMatrix[col][row] = -1;
			}
		}
		System.out.println("-------------");
		// print the matrix/2d-array in java
		for (int[] subarray : newMatrix) {
			for (int element : subarray) {
				System.out.printf("%5d", element);
			}
			System.out.println();
		}

	}
}

output:

,    1    2    3    4
    5    6    7    8   13
    9   10   11   12
-------------
    9    5    1
   10    6    2
   11    7    3
   12    8    4
    0   13    0
Created Time:2017-10-07 23:53:48  Author:lautturi