给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
示例:
输入: 3
输出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
class Solution {
public int[][] generateMatrix(int n) {
int[][] res=new int[n][n];
int up=0,down=n-1,left=0,right=n-1;
int count=1;
while(count<=n*n){
for(int i=left;i<=right;i++){
res[up][i]=count++;
}
up++;
for(int i=up;i<=down;i++){
res[i][right]=count++;
}
right--;
for(int i=right;i>=left;i--){
res[down][i]=count++;
}
down--;
for(int i=down;i>=up;i--){
res[i][left]=count++;
}
left++;
}
return res;
}
}