qingcheng奕  

http://oj.leetcode.com/problems/rotate-image/

将矩阵顺时针旋转90度。要求为原地算法。

注意对输入的测试,矩阵为空,长度为1,为2时……

#include <iostream>
#include <vector>
using namespace std;

class Solution {
public:
    void rotate(vector<vector<int> > &matrix) {
        if(matrix.empty())
            return;
        vector<vector<int> >matrixB;
        vector<int> onePiece;

        int len = matrix[0].size();
        if(len<=1)
        {
            return;
        }
        for(int j = 0;j<len;j++)
        {
            onePiece.clear();
            for(int i = 0;i<len;i++)
            {
                onePiece.push_back(matrix[len-1-i][j]);
            }
            matrixB.push_back(onePiece);
        }
        matrix = matrixB;
    }
};

int main()
{
    Solution myS;
    vector<vector<int> > matrix;
    vector<int> onePiece;
    onePiece.clear();
    onePiece.push_back(1);
    matrix.push_back(onePiece);
    /*onePiece.push_back(2);
    onePiece.push_back(5);
    matrix.push_back(onePiece);
    onePiece.clear();
    onePiece.push_back(3);
    onePiece.push_back(4);
    onePiece.push_back(6);
    matrix.push_back(onePiece);

    onePiece.clear();
    onePiece.push_back(8);
    onePiece.push_back(9);
    onePiece.push_back(10);*/
    //matrix.push_back(onePiece);

    myS.rotate(matrix);
    return 0;
}

原地算法如下:

 

posted on 2013-12-29 15:09  qingcheng奕  阅读(153)  评论(0编辑  收藏  举报