顺时针打印矩阵

来源:互联网 发布:旅贸通软件 编辑:程序博客网 时间:2024/05/29 19:21

不难,就是麻烦

class Solution {public:    vector<int> printMatrix(vector<vector<int> > matrix) {        vector<int> ans;        int n=matrix.size();        if(n==0) return ans;        int m=matrix[0].size();        int i=0, j=0;        int tag, k;        int len=n*m;        for(k=0;;k++){            for(tag=1;tag<=4;tag++){                switch(tag){                    case 1:{                        while(j<m-k){                            len--;                            ans.push_back(matrix[i][j++]);                        }                        j--;                        i++;                        break;                    }                    case 2:{                        while(i<n-k){                            len--;                            ans.push_back(matrix[i++][j]);                        }                        i--;                        j--;                        break;                    }                    case 3:{                        while(j>=k){                            len--;                            ans.push_back(matrix[i][j--]);                        }                        j++;                        i--;                        break;                    }                    case 4:{                        while(i>k){                            len--;                            ans.push_back(matrix[i--][j]);                        }                        i++;                        j++;                        break;                    }                }                if(len==0) return ans;            }         }        return ans;    }};


0 0