class Solution {
public:
int move[4][2] = {0,1,1,0,0,-1,-1,0};
int book[105][105] = {0};
vector<int> spiralOrder(vector<vector<int>>& matrix) {
vector<int> res;
if(matrix.size() == 0) return res;
res.push_back(matrix[0][0]);
book[0][0]=1;
int i = 0,x = 0,y = 0;
while(res.size() != matrix.size()*matrix[0].size()){
int xa = x + move[i][0];
int ya = y + move[i][1];
if(xa < 0 || ya < 0 || xa == matrix.size() || ya == matrix[0].size() || book[xa][ya] == 1) {
i = (i+1) % 4;
}
else{
res.push_back(matrix[xa][ya]);
book[xa][ya] = 1;
x = xa;
y = ya;
}
}
return res;
}
};
力扣(dfs解法)面試題29. 順時針打印矩陣
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.