59. 螺旋矩阵 II
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
示例:
输入: 3
输出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
题解
/**
* @param {number} n
* @return {number[][]}
*/
var generateMatrix = function(n) {
let res = new Array(n).fill(undefined).map(item =>new Array(n))
let x = 0, y = 0, a = 1,b=n
while (a <= n * n) {
while (x < b) {
res[y][x] = a++
x++
}
x--
a--
while (y < b) {
res[y][x] = a++
y++
}
y--
a--
while (x >=n-b) {
res[y][x] = a++
x--
}
x++
a--
while (y>n-b) {
res[y][x] = a++
y--
}
b--
a--
y++
if(b==0){
break
}
}
return res
};