首页 > 代码库 > 顺时针打印矩阵

顺时针打印矩阵


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


顺时针打印矩阵