前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >剑指offer29顺时针打印矩阵

剑指offer29顺时针打印矩阵

原创
作者头像
伯约同学
发布2022-04-07 20:19:03
2330
发布2022-04-07 20:19:03
举报

题目:

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。

答题:

代码语言:javascript
复制
```javascript
/**
 * @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的时候,数组中就已经没有内容了

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档