classSolution { public: vector<vector<int>> generateMatrix(int n) { int t = 0, l = 0, r = n - 1, b = n - 1; //定义初始上、左、右、下边界 int num = 1; vector<vector<int>> res(n, vector<int>(n)); //定义一个二维vector存储结果 while (num <= n * n) { for (int i = l; i <= r; ++i) res[t][i] = num++; ++t; //上边界下移 for (int i = t; i <= b; ++i) res[i][r] = num++; --r; //右边界左移 for (int i = r; i >= l; --i) res[b][i] = num++; --b; //下边界上移 for (int i = b; i >= t; --i) res[i][l] = num++; ++l; //左边界右移 } return res; } };