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; }};