题目描述: 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 示例:
输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]思路: 和54.螺旋矩阵思路一样,四个方向,四种走法 https://blog.csdn.net/llwvip/article/details/90550597 代码:
class Solution { public: vector<vector<int>> generateMatrix(int n) { vector<vector<int>> res(n, vector<int>(n)); int top = 0, botoom = n - 1, left = 0, right = n - 1; int num = 1; while(true) { for(int i = left; i <= right; i++) res[top][i] = num++; if(++top > botoom) break; for(int i = top; i <= botoom; i++) res[i][right] = num++; if(--right < left) break; for(int i = right; i >= left; i--) res[botoom][i] = num++; if(--botoom < top) break; for(int i = botoom; i >= top; i--) res[i][left] = num++; if(++left > right) break; } return res; } };结果显示: