剑指offer29顺时针打印矩阵

举报
伯约同学 发表于 2022/04/07 20:18:18 2022/04/07
【摘要】 题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。答题:```javascript/** * @param {number[][]} matrix * @return {number[]} */ var spiralOrder = function(matrix) {  let res = []  let tem = ''  try{      while(matrix.l...

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

```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的时候,数组中就已经没有内容了

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。