class Solution {
public:
vector<int> printMatrix(vector<vector<int> > &matrix) {
int row = matrix.size();
int col = matrix[0].size();
int start= 0;
vector<int> result;
while(2 * start < row && 2 * start < col){
int endX = col - start - 1;
int endY = row - start - 1;
for(int i=start; i<=endX; i++){
result.push_back(matrix[start][i]);
}
if(start < endY)
for(int i=start+1; i<=endY; i++){
result.push_back(matrix[i][endX]);
}
if(endY > start && endX > start)
for(int i=endX-1; i>=start; i--){
result.push_back(matrix[endY][i]);
}
if(start<endX && start<endY-1)
for(int i=endY-1; i>start; i--){
result.push_back(matrix[i][start]);
}
start++;
}
return result;
}
};