class Solution {
public:
vector<int> printMatrix(vector<vector<int> > matrix) {
int m = matrix.size(); //行数
int n = matrix[0].size(); //列数</int></int>
vector<int> res; //返回结果,若m*n == 0,则返回的也是空数组 if(m == 0 || n == 0) return res; int c1 = 0; //要打印的列的起始下标 int c2 = n-1; //要打印的列的终点下标 int r1 = 0; //要打印的行的起始下标 int r2 = m-1;//要打印的行的终点下标 while(c1 <= c2 && r1<=r2) //存在可打印的元素 { //打印顶行 for(int j = c1; j<=c2; j++) res.push_back(matrix[r1][j]); r1++; //打印右列 if(r1 <= r2) { for(int i = r1; i<=r2; i++) res.push_back(matrix[i][c2]); c2--; }else break; //打印底行 if(c1<=c2) { for(int j = c2; j>=c1; j--) res.push_back(matrix[r2][j]); r2--; }else break; //打印左列 if(r1<=r2) { for(int i = r2; i>=r1; i--) res.push_back(matrix[i][c1]); c1++; }else break; } return res; }
};