顺时针打印矩阵

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了顺时针打印矩阵相关的知识,希望对你有一定的参考价值。


    vector<int> clockwisePrint(vector<vector<int> > mat, int n, int m) {
      
        vector<int> ret;
        int i=0;
        int j=0;
        int startx=0;
        int starty=0;
        int endx=n-1;
        int endy=m-1;
        while(startx<=endx && starty<=endy){
           
            
            if(endy==starty){
                for(j=endy,i=startx;i<=endx;++i){
                	ret.push_back(mat[i][j]);
            	}
                return ret;
            }
            if(endx==startx){
                for(i=startx,j=starty;j<=endy;++j){
                	ret.push_back(mat[i][j]);
            	}
                return ret;
            }    
            for(i=startx,j=starty;j<=endy;++j){
                ret.push_back(mat[i][j]);
            }
            for(j=endy,i=startx+1;i<=endx;++i){
                ret.push_back(mat[i][j]);
            }
            for(i=endx,j=endy-1;j>=starty;--j){
                ret.push_back(mat[i][j]);
            }
            for(j=starty,i=endx-1;i>startx;--i){
                ret.push_back(mat[i][j]);
            }
            
            startx++;
            starty++;
            endx--;
            endy--;
                
        }
        return ret;
    }


以上是关于顺时针打印矩阵的主要内容,如果未能解决你的问题,请参考以下文章

顺时针打印矩阵

剑指offer--29顺时针打印矩阵

剑指offer 19.顺时针打印矩阵

顺时针打印矩阵

剑指offer:顺时针打印矩阵

剑指 Offer 29. 顺时针打印矩阵 的 详细题解