题解 | #顺时针打印矩阵#
顺时针打印矩阵
https://www.nowcoder.com/practice/9b4c81a02cd34f76be2659fa0d54342a
#include <vector> class Solution { public: vector<int> printMatrix(vector<vector<int> > matrix) { vector<int> res; int left = 0, right = matrix[0].size() - 1; int 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; } };