题目描述
思路分析
模拟题
代码实现
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
vector<int> res;
unordered_map<int,bool> hash;
int m=matrix.size(),n=matrix[0].size();
int cur=1,i=0,j=0;
res.push_back(matrix[i][j]);
hash[i*1e4+j]=true;
while(cur<=m*n){
while(j+1<n&&!hash[i*1e4+j+1])j++,hash[i*1e4+j]=true,res.push_back(matrix[i][j]);
while(i+1<m&&!hash[(i+1)*1e4+j])i++,hash[i*1e4+j]=true,res.push_back(matrix[i][j]);
while(j-1>=0&&!hash[i*1e4+j-1])j--,hash[i*1e4+j]=true,res.push_back(matrix[i][j]);
while(i-1>=0&&!hash[(i-1)*1e4+j])i--,hash[i*1e4+j]=true,res.push_back(matrix[i][j]);
cur++;
}
return res;
}
};