终于AC了
很暴力的思路 x y 是矩阵起始点 n m为矩阵终结点
递归打印
注意边界
class Solution {
public:
vector[HTML_REMOVED] res;
vector<int> printMatrix(vector<vector<int> > matrix) {
//vector<int> res;
if (matrix.empty()) return res;
int n=matrix.size();
int m=matrix[0].size();
return shuchu(n,m,0,0,matrix);
}
vector<int> shuchu(int n,int m,int x,int y, vector<vector<int>> arr) {
//vector<int> res;
if (n<=x || m<=y) return res;
if(m-y==1){
for(int i=x;i<n;i++) res.push_back(arr[i][y]);
return res;
}
if(n-x==1){
for(int i=y;i<m;i++) res.push_back(arr[x][i]);
return res;
}
for(int i=y;i<m-1;i++) res.push_back(arr[x][i]);
for(int i=x;i<n;i++) res.push_back(arr[i][m-1]);
for(int i=m-2;i>y;i--) res.push_back(arr[n-1][i]);
for(int i=n-1;i>x;i--) res.push_back(arr[i][y]);
//return res;
return shuchu(n-1,m-1,x+1,y+1,arr);
}
};