1. 程式人生 > 其它 >(背下來)59. 螺旋矩陣 II

(背下來)59. 螺旋矩陣 II

技術標籤:leetcode刷題

###解題思路

經典模擬題,首先定義row=0,col=-1

然後用試探法判斷下一步有沒有越界以及可不可以擺放相應的元素

###程式碼

class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        vector<vector<int>> res(n,vector<int>(n,0));
        int row = 0,col = -1;
        int count = 0;
        int N = n*n;
        while(N){
            while(col + 1 < n && !res[row][col+1]) res[row][++col] = ++count,N--;
            while(row + 1 < n && !res[row+1][col]) res[++row][col] = ++count,N--;
            while(col - 1 >= 0 && !res[row][col-1]) res[row][--col] = ++count,N--;
            while(row - 1 >= 0 && !res[row-1][col]) res[--row][col] = ++count,N--;
        }
        return res;
    }
};