Spiral Matrix

来源:互联网 发布:idea2016新建java项目 编辑:程序博客网 时间:2024/05/19 03:28
class Solution {public:    vector<int> spiralOrder(vector<vector<int> > &matrix) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        vector<int> vec;        int row=matrix.size();        if(row==0)return vec;        int col=matrix[0].size();        int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};        int cnt=1,d=0,step=row*col,x=0,y=0;        while(step--){            vec.push_back(matrix[x][y]);            matrix[x][y]=0;            if(x+dir[d][0]<0||x+dir[d][0]>=row||y+dir[d][1]<0||                y+dir[d][1]>=col||matrix[x+dir[d][0]][y+dir[d][1]]==0){                ++d;                }            d%=4;            x+=dir[d][0];            y+=dir[d][1];        }        return vec;    }};

原创粉丝点击