Leetcode59:螺旋矩阵II
- 题目:
- 给你一个正整数
n
,生成一个包含 1
到 n2
所有元素,且元素按顺时针顺序螺旋排列的 n x n
正方形矩阵 matrix
。
- 思路:模拟
- 代码如下:
class Solution {
public int[][] generateMatrix(int n) {
int[][] res = new int[n][n];
int startX = 0;
int startY = 0;
int loop = n/2;
int offset = 1;
int count = 1;
int mid = n/2;
while(loop > 0){
int i = startX;
int j = startY;
for(;j < startY + n - offset; j++){
res[i][j] = count++;
}
for(;i < startX+n -offset; i++){
res[i][j] = count++;
}
for(;j>startY;j--){
res[i][j] = count++;
}
for(;i>startX;i--){
res[i][j] = count++;
}
startX++;
startY++;
loop--;
offset+=2;
}
if(n%2==1){
res[mid][mid] = count;
}
return res;
}
}