### 解题思路

经典模拟题,首先定义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;
    }
};