剑指Offer_编程题_19
Posted gaoren
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指Offer_编程题_19相关的知识,希望对你有一定的参考价值。
题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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的主要内容,如果未能解决你的问题,请参考以下文章