题解 | #顺时针打印矩阵#

顺时针打印矩阵

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
};
全部评论

相关推荐

10-17 10:05
已编辑
北华大学 全栈开发
牛客872465272号:掉头发了哥
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务