思路
第 i 圈的遍历方式为:从第 i 列开始,遍历第 i 行,i < length - i -1
第一圈从第一列遍历第一行至倒数第二个元素
第二圈从第二列遍历第二行至倒数第三个元素
…
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public void rotate(int[][] matrix) { int length = matrix.length; for (int i = 0; i < length / 2; i++) { int currenLength = length - i - 1; for (int j = i; j < currenLength ; j++) { int index = length - j - 1; int temp = matrix[i][j]; matrix[i][j] = matrix[index][i]; matrix[index][i] = matrix[currenLength][index]; matrix[currenLength][index] = matrix[j][currenLength]; matrix[j][currenLength] = temp; } } }
|