59. Spiral Matrix II

class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        int k = 1;
        vector<vector<int>> matrix(n, vector<int>(n));
        int u = 0, r = n - 1, d = n - 1, l = 0;
        while (true) {
            for (int col = l; col <= r; col++) matrix[u][col] = k++;
            if (++u > d) break;
            for (int row = u; row <= d; row++) matrix[row][r] = k++;
            if (--r < l) break;
            for (int col = r; col >= l; col--) matrix[d][col] = k++;
            if (--d < u) break;
            for (int row = d; row >= u; row--) matrix[row][l] = k++;
            if (++l > r) break;
        }
        return matrix;
    }
};

results matching ""

    No results matching ""