题解 | #顺时针打印矩阵#
顺时针打印矩阵
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;
}
};

