代码很直接,也很暴力

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;
    }
};