首页 > 代码库 > LeetCode Rotate Image

LeetCode Rotate Image

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?

 

可以找规律 得出映射关系,(i,j)===>(j,n-1-j)

由于要in-place,不能直接新建矩阵,所以从外圈开始,一个个置换。

 1 public class Solution { 2     public void rotate(int[][] matrix) { 3         int n = matrix[0].length -1; 4         for(int i = 0;i <= n - i;i++){ 5             for(int j = i;j <= n - i - 1;j++) 6             { 7                 int tmp = matrix[j][n-i]; 8                 matrix[j][n-i] = matrix[i][j]; 9                 matrix[i][j] = matrix[n-j][i];10                 matrix[n-j][i] = matrix[n-i][n-j];11                 matrix[n-i][n-j] = tmp;12             }13         }14     }15 }

 

LeetCode Rotate Image