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

顺时针打印矩阵

https://www.nowcoder.com/practice/9b4c81a02cd34f76be2659fa0d54342a?tpId=265&rp=1&ru=%2Fexam%2Foj%2Fta&qru=%2Fexam%2Foj%2Fta&sourceUrl=%2Fexam%2Foj%2Fta%3FjudgeStatus%3D3%26page%3D1%26pageSize%3D50%26search%3D%26tpId%3D13%26type%3D265&difficulty=&judgeStatus=3&tags=&title=&gioEnter=menu

螺旋矩阵

class Solution {
public:
    vector<int> printMatrix(vector<vector<int> > matrix) {
      if (matrix.empty()) {
        return std::vector<int>();
      }
      
      std::vector<int> res;
      
      int left = 0, right = matrix[0].size() - 1, up = 0, down = matrix.size() - 1;
      
      while (left <= right && up <= down) {
        for (int i = left; i <= right; ++i) {
          res.push_back(matrix[up][i]);
        }
        ++up;
        if (up > down) {
          break;
        }
        
        for (int i = up; i <= down; ++i) {
          res.push_back(matrix[i][right]);
        }
        --right;
        if (left > right) {
          break;
        }
        
        for (int i = right; i >= left; --i) {
          res.push_back(matrix[down][i]);
        }
        --down;
        if (up > down) {
          break;
        }
        
        for (int i = down; i >= up; --i) {
          res.push_back(matrix[i][left]);
        }
        ++left;
        if (left > right) {
          break;
        }
      }
      
      return res;
    }
};
全部评论

相关推荐

10-14 21:00
门头沟学院 Java
吃花椒的狸猫:这个人说的倒是实话,特别是小公司,一个实习生哪里来的那么多要求
点赞 评论 收藏
分享
牛客41406533...:回答他在课上学,一辈子待在学校的老教授用三十年前的祖传PPT一字一句的讲解,使用谭浩强红皮书作为教材在devc++里面敲出a+++++a的瞬间爆出114514个编译错误来学这样才显得专业
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务