顺时针打印矩阵

来源:互联网 发布:网络节点是什么意思 编辑:程序博客网 时间:2024/05/18 11:46

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:1 2 3 45 6 7 89 10 11 1213 14 15 16则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.


class Solution {
public:
    vector<int> printMatrix(vector<vector<int> > matrix) {
              vector<int>  ans;
              introw=matrix.size();
              intcol=matrix[0].size();
            if(row==0|| col==0)  return  ans;
            inttop=0,left=0,right=col-1,bottom=row-1;
            while(left<=right && top<=bottom)
           {
                for(intj=left;j<=right;++j)
                     ans.push_back(matrix[top][j]);
                for(inti=top+1;i<=bottom;++i)
                     ans.push_back(matrix[i][right]);
                if(top!=bottom)
                for(intj=right-1;j>=left;--j)
                     ans.push_back(matrix[bottom][j]);
                if(left!=right)
                for(inti=bottom-1;i>top;--i)
                     ans.push_back(matrix[i][left]);
                left++,right--,top++,bottom--;
           }
            returnans;
    }
};

0 0
原创粉丝点击