vector clockwisePrint(vector > mat, int n, int m) {
vector 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;
}
网页题目:顺时针打印矩阵
分享网址:
http://cdxtjz.cn/article/gissio.html