题目:螺旋矩阵(59. 螺旋矩阵 II - 力扣(LeetCode))
给你一个正整数 n
,生成一个包含 1
到 n2
所有元素,且元素按顺时针顺序螺旋排列的 n x n
正方形矩阵 matrix
。
示例 1:
输入:n = 3 输出:[[1,2,3],[8,9,4],[7,6,5]]
示例 2:
输入:n = 1 输出:[[1]]
提示:
1 <= n <= 20
题解:
class Solution {
public:vector<vector<int>> generateMatrix(int n) {vector<vector<int>> res(n, vector<int>(n, 0));int starti=0,startj=0;int count=1;int circle=n/2;int endd=n/2;int flag=1;int i,j;while(circle--){i=starti;j=startj;for(;j<n-flag;j++){res[i][j]=count++;}for(;i<n-flag;i++){res[i][j]=count++;}for(;j>startj;j--){res[i][j]=count++;}for(;i>starti;i--){res[i][j]=count++;}flag++;starti++;startj++;}if(n%2!=0){res[endd][endd]=count;}return res;}
};
理解:
要分好四个步骤