xinyu04

导航

[Oracle] LeetCode 48 Rotate Image 思维

You are given an n x n 2D matrix representing an image, rotate the image by 90 degrees (clockwise).

You have to rotate the image in-place, which means you have to modify the input 2D matrix directly. DO NOT allocate another 2D matrix and do the rotation.

Solution

image

点击查看代码
class Solution {
public:
    void rotate(vector<vector<int>>& matrix) {
        int row = matrix.size(), col = matrix[0].size();
        // transpose
        for(int i=0;i<row;i++){
            for(int j=i;j<col;j++){
                swap(matrix[i][j], matrix[j][i]);
            }
        }
        for(int i=0;i<row;i++){
            int left=0, right=col-1;
            while(left<right){
                swap(matrix[i][left], matrix[i][right]);
                left++;right--;
            }
        }
    }
};

image

image

posted on 2022-10-03 20:45  Blackzxy  阅读(13)  评论(0编辑  收藏  举报