class Solution {
public:
vector<int> spiralOrder(vector<vector<int> > &matrix) {
vector<int>res;
if(matrix.size()==0)return res;
int up=0,down=matrix.size()-1,left=0,right=matrix[0].size()-1;
while(up<=down&&left<=right)
{
for(int j=left;j<=right;j++)res.push_back(matrix[up][j]);
for(int i=up+1;i<=down;i++)res.push_back(matrix[i][right]);
for(int j=right-1;j>=left&&up!=down;j--)res.push_back(matrix[down][j]);
for(int i=down-1;i>up&&left!=right;i--)res.push_back(matrix[i][left]);
up++,down--,left++,right--;
}
return res;
}
};
网友评论