import java.util.Arrays;
public class Solution {
//顺时针旋转90度
public void rotate(int[][] matrix) {
for (int i = 0, j = matrix.length - 1; i < j; i++, j--) {
int[] temp = matrix[i];
matrix[i] = matrix[j];
matrix[j] = temp;
}
for (int m = 0; m < matrix.length; m++) {
for (int n = m + 1; n < matrix.length; n++) {
int temp = matrix[m][n];
matrix[m][n] = matrix[n][m];
matrix[n][m] = temp;
}
}
}
//逆时针旋转90度
public void rotate2(int[][] matrix) {
for (int i = 0; i < matrix.length; i++) {
for (int j = 0, k = matrix[i].length - 1; j < k; j++, k--) {
int temp = matrix[i][j];
matrix[i][j] = matrix[i][k];
matrix[i][k] = temp;
}
}
for (int m = 0; m < matrix.length; m++) {
for (int n = m + 1; n < matrix.length; n++) {
int temp = matrix[m][n];
matrix[m][n] = matrix[n][m];
matrix[n][m] = temp;
}
}
}
public static void main(String[] args) {
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
System.out.println("after clockwise rotate 90 degree");
new Solution().rotate(matrix);
for (int[] nums : matrix) {
System.out.println(Arrays.toString(nums));
}
System.out.println("after anti-clockwise rotate 90 degree");
new Solution().rotate2(matrix);
for (int[] nums : matrix) {
System.out.println(Arrays.toString(nums));
}
}
}
[参考]
https://discuss.leetcode.com/topic/6796/a-common-method-to-rotate-the-image