题目
代码
var generateMatrix = function(n) {
let matrix = []
for (let i = 0; i < n; i++) {
let arr = new Array(n).fill(0)
matrix.push(arr)
}
let num = 1
let upper_bound = 0, right_bound = n-1;
let lower_bound = n-1, left_bound = 0;
while(num <= n*n) {
if(upper_bound <= lower_bound) {
for (let i = left_bound; i <= right_bound; i++) {
matrix[upper_bound][i] = num++
}
upper_bound++
}
if(right_bound >= left_bound) {
for (let i = upper_bound; i <= lower_bound; i++) {
matrix[i][right_bound] = num++
}
right_bound--
}
if(lower_bound >= upper_bound) {
for (let i = right_bound; i >= left_bound; i--) {
matrix[lower_bound][i] = num++
}
lower_bound--
}
if(left_bound <= right_bound) {
for (let i = lower_bound; i >= upper_bound; i--) {
matrix[i][left_bound] = num++
}
left_bound++
}
}
return matrix
};
参考资料