您的位置:首页 > 其它

Spiral Matrix 矩阵的旋转输出

2015-04-11 17:05 477 查看


Spiral Matrix

Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.
For example,

Given the following matrix:
[
 [ 1, 2, 3 ],
 [ 4, 5, 6 ],
 [ 7, 8, 9 ]
]

You should return
[1,2,3,6,9,8,7,4,5]
.

class Solution {
public:
    vector<int> spiralOrder(vector<vector<int> > &matrix) {
        
        vector<int> res;
        if(matrix.size()==0)
            return res;
            
        int x1,y1,x2,y2,i;
        x1=y1=0;
        x2=matrix.size()-1;
        y2=matrix[0].size()-1;

        while(x1<=x2&&y1<=y2)
        {
            for(i=y1;i<=y2;i++)
                res.push_back(matrix[x1][i]);
            for(i=x1+1;i<=x2;i++)
                res.push_back(matrix[i][y2]);
            if(x2!=x1)  
                for(i=y2-1;i>=y1;i--)
                    res.push_back(matrix[x2][i]);
            if(y2!=y1)
                for(i=x2-1;i>x1;i--)
                    res.push_back(matrix[i][y1]);
            x1++;x2--;
            y1++;y2--;
        }
        return res;
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: