题目链接:rotate-image
矩阵原地旋转90度
import java.util.Arrays; /** * You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwise). Follow up: Could you do this in-place? * */ public class RotateImage { // 20 / 20 test cases passed. // Status: Accepted // Runtime: 181 ms // Submitted: 1 minute ago static void rotate(int[][] matrix) { int n = matrix.length - 1; for(int i = 0; i <= n / 2; i ++) for(int j = i; j < n - i; j ++) { //旋转四个位置相同的点 //旋转前的位置关系 // ( i j) . . . ( j n-i) // . . // . . // . . // (n-j i) . . . (n-i n-j) int temp1 = matrix[i][j]; matrix[i][j] = matrix[n - j][i]; matrix[n - j][i] = matrix[n - i][n - j]; matrix[n - i][n - j] = matrix[j][n - i]; matrix[j][n - i] = temp1; //旋转后的位置关系 // (n-j i ) . . . ( i j ) // . . // . . // . . // (n-i n-j) . . . ( j n-i) } } public static void main(String[] args) { int[][] matrix = {{1,2}, {3, 4}}; rotate(matrix); for(int i = 0; i < matrix.length; i ++) System.out.println(Arrays.toString(matrix[i])); } }
原文:http://blog.csdn.net/ever223/article/details/44539901