力扣(dfs解法)面試題29. 順時針打印矩陣

在這裏插入圖片描述

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;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章