算法JS:顺时针打印一个NxN矩阵
题目描述:
输入一个正整数N,输出一个NxN矩阵。示例如下:
代码如下:
function PrintMatrix(n){
let result = [];
let number = 1;
let start = 0;
// 生成一个NxN空矩阵
for(let i = 0; i < n; i++){
result.push([]);
for(let j = 0; j < n; j++){
result[i].push();
}
}
while(n > start*2){
let end = n - 1 - start;
// 从左往右打印
for(let i = start; i <= end; i++){
result[start][i] = number;
number++;
}
// 从上往下打印
if(start < end){
for(let i = start + 1; i <= end; i++){
result[i][end] = number;
number++;
}
}
// 从右往左打印
if(start < n){
for(let i = end - 1; i >= start; i--){
result[end][i] = number;
number++;
}
}
// 从下往上打印
if(start < n-1){
for(let i = end - 1 ; i >= start + 1; i--){
result[i][start] = number;
number++;
}
}
start++;
}
return result;
}
console.log(PrintMatrix(7))
END