关于javascript:剑指offer29顺时针打印矩阵

41次阅读

共计 762 个字符,预计需要花费 2 分钟才能阅读完成。

题目:
输出一个矩阵,依照从内向里以顺时针的程序顺次打印出每一个数字。
答题:

/**
 * @param {number[][]} matrix
 * @return {number[]}
 */
 var spiralOrder = function(matrix) {let res = []
  let tem = ''
  try{while(matrix.length){let top = matrix.shift()
          for(let i =0;i<top.length;i++){tem = top[i]
              if(tem !== undefined){res.push(tem)
              }else{return res}
          }
          for(let i=0;i<matrix.length;i++){tem = matrix[i].pop()
              
              if(tem !== undefined){res.push(tem)
              }else{return res}
          }
          let bottom = matrix.pop()
          for(let i=bottom.length - 1;i>-1;i--){tem = bottom[i]
               if(tem !== undefined){res.push(tem)
              }else{return res}
          }
          for(let i=matrix.length - 1;i>-1;i--){tem = matrix[i].shift()
               if(tem !== undefined){res.push(tem)
              }else{return res}
              
          }

      }

  }catch(err){return res}
  
  return res

};

把数组的每一行,每一列当成一个整体,每个循环过程中用到的话就要删除掉。
也就是先删除最下面一行,再删除最右面一列,而后删除最初一行,最初删除最右边一列。
在遍历过程中有的值可能就没有了,这时候把 res 返回即可。
毕竟呈现 undefined 的时候,数组中就曾经没有内容了

正文完
 0