代码很直接,也很暴力
class Solution { public: vector<int> printMatrix(vector<vector<int> > matrix) { vector<int> res; int m = matrix.size(); if(m<=0) return res; int n = matrix[0].size(); // 这里的up,down,left,right分别表示可打印的元素区域的上下左右的界限 int up = 0, down = m - 1, left = 0, right = n-1; while(1) { int flag = 0; // from left to right for(int i = up, j = left; j<=right;j++) { flag = 1; res.push_back(matrix[i][j]); } up ++; if(!flag) break; // from up to down flag = 0; for(int i = up, j = right; i<=down;i++) { flag = 1; res.push_back(matrix[i][j]); } right --; if(!flag) break; // from right to left flag = 0; for(int i = down, j = right; j>=left; j--) { flag = 1; res.push_back(matrix[i][j]); } down --; if(!flag) break; // from down to up flag = 0; for(int i = down, j = left;i>=up; i--) { flag = 1; res.push_back(matrix[i][j]); } left ++; if(!flag) break; } return res; } };