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

例如,如果输入如下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;
	}
};