Leetcode: Rotate Image

来源:互联网 发布:西门子plm软件 列表 编辑:程序博客网 时间:2024/04/29 04:20

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?

基本思想就是转圈一个个的替换,不过各个坐标转换的真是晕菜呀。。。

class Solution {public:    void rotate(vector<vector<int> > &matrix) {        int size = matrix.size();        int level = size / 2;        for (int i = 0; i < level; ++i) {            for (int j = i; j < size - i - 1; ++j) {                int tmp = matrix[i][j];                matrix[i][j] = matrix[size-j-1][i];                matrix[size-j-1][i] = matrix[size-i-1][size-j-1];                matrix[size-i-1][size-j-1] = matrix[j][size-i-1];                matrix[j][size-i-1] = tmp;            }        }    }};

=============第二次===============

class Solution {public:    void rotate(vector<vector<int> > &matrix) {        int size = matrix.size() - 1;        int start = 0;        int end = matrix.size() - 1;        for (int i = 0; i < matrix.size() / 2; ++i) {            for (int j = start; j < end; ++j) {                int tmp = matrix[i][j];                matrix[i][j] = matrix[size-j][i];                matrix[size-j][i] = matrix[size-i][size-j];                matrix[size-i][size-j] = matrix[j][size-i];                matrix[j][size-i] = tmp;            }            ++start;            --end;        }    }};


0 0
原创粉丝点击