面试题 29. 顺时针打印矩阵

07-21 1492阅读

顺时针打印矩阵

  • 题目描述
    • 示例
    • 题解

      题目描述

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

      面试题 29. 顺时针打印矩阵
      (图片来源网络,侵删)

      示例

      示例 1:

      输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]

      输出:[1,2,3,6,9,8,7,4,5]

      题解

      从外往里一圈一圈遍历并存储矩阵元素即可。

      class Solution {
      public:
          vector spiralOrder(vector& matrix) {
              int rows = matrix.size(), cols = matrix[0].size();
              if (rows == 0 || cols == 0) return {};
              vector res;
              int top = 0, bottom = rows -1, left = 0, right = cols - 1;
              while (top 
                  for (int i = left; i 
                      for (int i = right - 1; i = left; i--) res.push_back(matrix[bottom][i]);
                      // 可以模拟发现 不可以为 i = top
                      for (int i = bottom - 1; i  top; i--) res.push_back(matrix[i][left]);
                  }
                  top++;
                  bottom--;
                  left++;
                  right--;
              }
              return res;
          }
      };
      
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]