void rotateMatrix(int a[][]) {
int n = a.length;
if (n <= 1) {
return; // nothing to do
}
/* layers */
for (int i = 0; i < n / 2; i++) {
/* elements */
for (int j = i; j < n - i - 1; j++) {
int saved = a[i][j];
a[i][j] = a[n - j - 1][i];
a[n - j - 1][i] = a[n - 1 - i][n - 1 - j];
a[n - 1 - i][n - 1 - j] = a[j][n - 1 - i];
a[j][n - 1 - i] = saved;
}
}
}