1public void rotate(int[][] matrix) {
2 int n = matrix.length;
3
4 // Step 1: Transpose the matrix
5 for (int i = 0; i < n; i++) {
6 for (int j = i + 1; j < n; j++) {
7 int temp = matrix[i][j];
8 matrix[i][j] = matrix[j][i];
9 matrix[j][i] = temp;
10 }
11 }
12
13 // Step 2: Reverse each row
14 for (int i = 0; i < n; i++) {
15 int left = 0, right = n - 1;
16 while (left < right) {
17 int temp = matrix[i][left];
18 matrix[i][left] = matrix[i][right];
19 matrix[i][right] = temp;
20 left++;
21 right--;
22 }
23 }
24}