• 48. 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?

    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       
            
        }
  • 相关阅读:
    测试种类
    Android ADB使用之详细篇
    Maven 生命周期
    在Eclipse中新建Maven项目
    Maven搭建环境(Linux& Windows)
    一个简单的JUnit项目
    Assertions
    Aggregating tests in suites
    Test execution order
    c#一个分页控件的例子
  • 原文地址:https://www.cnblogs.com/joannacode/p/6106098.html
Copyright © 2020-2023  润新知