AcWing 40. 顺时针打印矩阵
原题链接
中等
作者:
daniellee
,
2019-04-10 20:53:24
,
所有人可见
,
阅读 1045
C++ 代码
class Solution {
public:
vector<int> printMatrix(vector<vector<int> > matrix) {
vector<int> res;
if (matrix.empty()) return res;
int l=0;
int r=matrix[0].size()-1;
int t=0;
int b =matrix.size()-1;
int n = matrix.size() * matrix[0].size();
while(l<=r && t<=b){
int ori_l = l;
while( l<=r){
if (res.size()==n) break;
res.push_back(matrix[t][l]);
l++;
}
l--;
int ori_t = t;
t++;
while(t<=b){
if (res.size()==n) break;
res.push_back(matrix[t][l]);
t++;
}
t--;
l--;
while(l>=ori_l ){
if (res.size()==n) break;
res.push_back(matrix[t][l]);
l--;
}
l++;
t--;
while(t>ori_t ){
if (res.size()==n) break;
res.push_back(matrix[t][l]);
t--;
}
t++;
l++;
r--; b--;
}
return res;
}
};