首页 > 其他 > 详细

剑指Offer_编程题_19

时间:2018-04-26 19:32:54      阅读:151      评论:0      收藏:0      [点我收藏+]

题目描述

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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.
 
class Solution {
public:
    vector<int> printMatrix(vector<vector<int> > matrix) {
        vector<int>vt;
        int row = matrix.size(); 
        int col = matrix[0].size();
        int ri=0,rj=row-1,ci=0,cj=col-1,i=0,j=0;
        while(ci<=cj&&ri<=rj){
            for(j=ci;j<=cj;j++){
                vt.push_back(matrix[ri][j]);
            }
            ri++;
            if(ci>cj||ri>rj)break;
            for(i=ri;i<=rj;i++){
                vt.push_back(matrix[i][cj]);
            }
            cj--;
            if(ci>cj||ri>rj)break;
            for(j=cj;j>=ci;j--){
                vt.push_back(matrix[rj][j]);
            }
            rj--;
            if(ci>cj||ri>rj)break;
            for(i=rj;i>=ri;i--){
                vt.push_back(matrix[i][ci]);
            }
            ci++;
        }
        return vt;
    }
};

  

剑指Offer_编程题_19

原文:https://www.cnblogs.com/grglym/p/8954477.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!