/*
* @lc app=leetcode.cn id=59 lang=javascript
*
* [59] 螺旋矩阵 II
*/
// @lc code=start
/**
* @param {number} n
* @return {number[][]}
*/
var generateMatrix = function (n) {
let startX = startY = 0;
let loop = n >> 1
let count = 1;
let offset = 1;
const arr = new Array(n).fill().map(_ => new Array(n).fill(0))
while (loop--) {
let row = startX;
let column = startY;
for (; column < n - offset; column++) {
arr[row][column] = count++
}
for (; row < n - offset; row++) {
arr[row][column] = count++
}
for (; column > startX; column--) {
arr[row][column] = count++
}
for (; row > startY; row--) {
arr[row][column] = count++
}
startX++;
startY++;
offset++;
}
if (n % 2 === 1) {
const mid = n >> 1
arr[mid][mid] = count
}
return arr;
};
// @lc code=end
console.log(generateMatrix(3))
console.log(generateMatrix(4))
// 1 2 3 4
// 12 13 14 5
// 11 16 15 6
// 10 9 8 7