Rotate a matrix for 90 degree in clockwise.
public void rotate(int[][] matrix) {
int n = matrix[0].length;
for (int i = 0; i < Math.floor(n/2) ; i++) {
for (int j = i; j < n-1-i; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[n-1-j][i];
matrix[n-1-j][i] = matrix[n-1-i][n-1-j];
matrix[n-1-i][n-1-j] = matrix[j][n-1-i];
matrix[j][n-1-i] = temp;
}
}
}
This is how I did after stupid thinking for hours T^T.
But I think this's the most elegant solution which has the smallest time and space complex.