给你一个正整数 n
,生成一个包含 1
到 n2
所有元素,且元素按顺时针顺序螺旋排列的 n x n
正方形矩阵 matrix
。
59. 螺旋矩阵 II - 力扣(LeetCode) (leetcode-cn.com)
刚开始看属实给我转晕了,还是忍不住看了题解。
class Solution {
public int[][] generateMatrix(int n) {
int[][] result = new int[n][n];
int loop = n / 2;
int startX = 0;
int startY = 0;
int num = 1;
int i=0,j=0;
int offset = 1;
while (loop>0){
i=startX;
j=startY;
//向右
for (;j<startY+n-offset;j++){
result[i][j]=num++;
}
//向下
for(;i<startX+n-offset;i++){
result[i][j]=num++;
}
//向左
for(;j>startY;j--){
result[i][j]=num++;
}
//向上
for(;i>startX;i--){
result[i][j]=num++;
}
loop--;
startX++;
startY++;
offset += 2;
}
if(n%2==1)
result[n/2][n/2]=num;
return result;
}
}