题解 | #顺时针打印矩阵#
顺时针打印矩阵
http://www.nowcoder.com/practice/9b4c81a02cd34f76be2659fa0d54342a
为什么我的内存不通过???
function printMatrix(matrix)
// {
// // write code here
// let m=matrix.length
// let n=matrix[0].length
// let x=0
// let y=0
// let res=[]
// while(x<n&&y<m)
// for(let i=x;i<n;i++){
// res.push(matrix[x,i])
// }
// x+=1
// for(let i=y;i<m;i++){
// res.push(matrix[n,y])
// }
// n-=1
// for(let i=n;i>=y;i--){
// res.push(matrix[m,i])
// }
// m-=1
// for(let i=m;i>=x;i--){
// res.push(matrix[i,y])
// }
// y+=1
// }
// module.exports = {
// printMatrix : printMatrix
// };
{
// write code here
var newArray =[];
var mR=matrix.length-1;//最大行下标
var mC=matrix[0].length-1; //最大列下标
var beginCol=0; //初始列
var beginRow=0; //初始行
while(mR >=beginRow && mC >=beginCol){
//顶行 从左至右
for(var j=beginCol;j<=mC;j++){ //i是列数
newArray.push(matrix[beginCol][j]);
}
for(var i=beginRow+1;i<=mR;i++){
newArray.push(matrix[i][mC]);
}
// 底行 从右到左
if(mR != beginRow){
for(var j =mC-1;j>=beginCol;j--){
newArray.push(matrix[mR][j]);
}
}
//最左侧列
if(mC !=beginCol){
for(var i =mR-1;i>beginRow;i--){
newArray.push(matrix[i][beginCol]);
}
}
//逐渐缩小范围
beginRow++;
mR--;
beginCol++;
mC--;
}
return newArray;
}
module.exports = {
printMatrix : printMatrix
};