题目链接59. 螺旋矩阵 II - 力扣(LeetCode)
思路源自力扣一高赞大佬
改为 n*m 型矩阵也一样适用
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>>v(n, vector<int>(n, 0));
int k = 1;
int left = 0, top = 0;
int right = n - 1, bottom = n - 1;
while (k <= n * n) {
for (int i = left; i <= right; i++) {
v[top][i] = k++;
}
top++;//缩小上边界
for (int i = top; i <= bottom; i++) {
v[i][right] = k++;
}
right--;//缩小右边界
for (int i = right; i >= left; i--) {
v[bottom][i] = k++;
}
bottom--;//缩小下边界
for (int i = bottom; i >= top; i--) {
v[i][left] = k++;
}
left++;//缩小左边界
}
return v;
}
};
初学者,见解不足,如有错误请指出