题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
例如,如果输入如下4 X 4矩阵:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
则依次打印出数字:
1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
C++代码:
class Solution4 {
public:
vector<int> printMatrix(vector<vector<int>> matrix) {
vector<int> result;
result.clear();
int row = matrix.size();
int collor = matrix[0].size();
int circle = ((row < collor ? row : collor) - 1) / 2 + 1;
for (int i = 0; i < circle; i++) {
for (int j = i; j < collor - i; j++)
result.push_back(matrix[i][j]);
for (int k = i + 1; k < row - i; k++)
result.push_back(matrix[k][collor - 1 - i]);
for (int m = collor - i - 2; (m >= i) && (row - i - 1 != i); m--)
result.push_back(matrix[row - i - 1][m]);
for (int n = row - i - 2; (n > i) && (collor - i - 1 != i); n--)
result.push_back(matrix[n][i]);
}
return result;
}
};