顺时针打印矩阵

    xiaoxiao2023-03-24  4

    题目:顺时针打印矩阵

    想法是,先判断矩阵是否是只有一行或者一列,如果是,则直接打印即可;否则,就按下图方式打印一圈:

    打印完一圈之后,接着递归打印”内部“的矩阵。

    c++代码如下:

    class Solution { public: void print(vector<vector<int> > &matrix,vector<int> &out,int left,int top,int right,int bottom) { if(right-left<1) { while(top<=bottom) { out.push_back(matrix[left][top]); ++top; } return; } else if(bottom-top<1) { while(left<=right) { out.push_back(matrix[left][top]); ++left; } return; } else { for(int i=top;i<=bottom;++i) { out.push_back(matrix[left][i]); } for(int i=left+1;i<=right;++i) { out.push_back(matrix[i][bottom]); } for(int i=bottom-1;i>=top;--i) { out.push_back(matrix[right][i]); } for(int i=right-1;i>left;--i) { out.push_back(matrix[i][top]); } if(left+1<=right-1 && top+1<=bottom-1) { print(matrix,out,left+1,top+1,right-1,bottom-1); } } } vector<int> printMatrix(vector<vector<int> > matrix) { vector<int> out; out.clear(); print(matrix,out,0,0,matrix.size()-1,matrix[0].size()-1); return out; } };

    转载请注明原文地址: https://ju.6miu.com/read-1201353.html
    最新回复(0)