59. 螺旋矩阵 IIhttps://leetcode-cn.com/problems/spiral-matrix-ii/
难度中等509
给你一个正整数 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 int[][] generateMatrix(int n) {
int[][] ans = new int[n][n];
if(n==1)
{
ans[0][0]=1;
return ans;
}
int x = n*n;
int cont = 1;
int i=0,j=0;
int line=n,row=n;
int cen=0;
while(cont<=x)
{
//向左
while(cont<=x && i<n-1)
{
ans[j][i]=cont;
cont++;
i++;
}
//向下
while(cont<=x && j<n-1)
{
ans[j][i]=cont;
cont++;
j++;
}
// 向右
while(cont<=x && i>cen)
{
ans[j][i]=cont;
cont++;
i--;
}
//向上
while(cont<=x && j>cen)
{
ans[j][i]=cont;
cont++;
j--;
}
i++;
j++;
n--;
cen++;
if(cont == x){
ans[j][i] = cont;
cont++;
}
}
return ans;
}
}