码迷,mamicode.com
首页 > 其他好文 > 详细

48. Rotate Image

时间:2016-11-27 11:41:53      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:[]   ++   int   style   ide   instance   class   space   pac   

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?

The idea was firstly transpose the matrix and then flip it symmetrically. For instance,

1  2  3             
4  5  6
7  8  9

after transpose, it will be swap(matrix[i][j], matrix[j][i])

1  4  7
2  5  8
3  6  9

Then flip the matrix horizontally. (swap(matrix[i][j], matrix[i][matrix.length-1-j])

7  4  1
8  5  2
9  6  3
    /** No extra space  2 steps*/
    public void rotate(int[][] matrix) {
        int row = matrix.length;
        int col = matrix[0].length;
        for(int i = 0 ; i < row; i++){
            for(int j = i; j < col ; j++){  //对角线
                int temp = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = temp; 
            }
        } // step 1

        for(int i = 0 ; i < row; i++){
            for(int j = 0; j < row/2 ; j++){  //col -> row
                int temp = matrix[i][j];
                matrix[i][j] = matrix[i][row-1-j];
                matrix[i][row-1-j] = temp; 
            }
        } // step 2       
        
    }

 

48. Rotate Image

标签:[]   ++   int   style   ide   instance   class   space   pac   

原文地址:http://www.cnblogs.com/joannacode/p/6106098.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!