顺时针打印矩阵
- 参与人数:1858时间限制:1秒空间限制:32768K
- 通过比例:15.43%
- 最佳记录:0 ms|8552K(来自 董尼玛)
题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
这道题就是考循环
vector<int> printMatrix(vector<vector<int> > matrix) {
vector<int> res;
int row=matrix.size();
int col=matrix[0].size();
int turn=0;
int maxTurn=(min(row,col)+1)/2;
for(;turn<maxTurn;turn++){
for(int j=turn;j<col-turn;j++){
res.push_back(matrix[turn][j]);
}
for(int i=turn+1;i<row-turn;i++){
res.push_back(matrix[i][col-1-turn]);
}
if(2*turn+1!=row){
for(int j=col-2-turn;j>=turn;j--){
res.push_back(matrix[row-1-turn][j]);
}
}
if(2*turn+1!=col){
for(int i=row-2-turn;i>=turn+1;i--){
res.push_back(matrix[i][turn]);
}
}
}
return res;
}