题目描述:
输入两个正整数M,N,输出一个MxN矩阵。示例如下:
代码如下:
function PrintMatrix(rows,columns){
let result = [];
let number = 1;
let start = 0;
// 生成一个MxN空矩阵
for(let i = 0; i < rows; i++){
result.push([]);
for(let j = 0; j < columns; j++){
result[i].push();
}
}
while(rows > start*2 && columns > start*2){
let endX = columns - 1 - start;
let endY = rows - 1 - start;
// 从左往右打印
for(let i = start; i <= endX; i++){
result[start][i] = number;
number++;
}
// 从上往下打印
if(start < endY){
for(let i = start + 1; i <= endY; i++){
result[i][endX] = number;
number++;
}
}
// 从右往左打印
if(start < endX && start < endY){
for(let i = endX - 1; i >= start; i--){
result[endY][i] = number;
number++;
}
}
// 从下往上打印
if(start < endX && start < endY-1){
for(let i = endY - 1 ; i >= start + 1; i--){
result[i][start] = number;
number++;
}
}
start++;
}
return result;
}
console.log(PrintMatrix(3,4))
END