顺时针打印矩阵

Posted wsw_seu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了顺时针打印矩阵相关的知识,希望对你有一定的参考价值。

 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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.
1
class Solution { 2 public: 3 vector<int> printMatrix(vector<vector<int> > matrix) { 4 vector<int> res; 5 int row=matrix.size(); 6 if(row==0) return res; 7 int col=matrix[0].size(); 8 int i,j,left=0,right=col-1,up=0,down=row-1; 9 while(left<=right&&up<=down) 10 { 11 //上行 12 for(j=left;j<=right;j++) 13 res.push_back(matrix[up][j]); 14 //右列 15 for(i=up+1;i<=down;i++) 16 res.push_back(matrix[i][right]); 17 //下行 18 if(down>up) 19 for(j=right-1;j>=left;j--) 20 res.push_back(matrix[down][j]); 21 //左列 22 if(left<right) 23 for(i=down-1;i>up;i--) 24 res.push_back(matrix[i][left]); 25 up++; 26 down--; 27 left++; 28 right--; 29 } 30 return res; 31 } 32 };

 

以上是关于顺时针打印矩阵的主要内容,如果未能解决你的问题,请参考以下文章

顺时针打印矩阵

剑指offer--29顺时针打印矩阵

剑指offer 19.顺时针打印矩阵

顺时针打印矩阵

剑指offer:顺时针打印矩阵

剑指 Offer 29. 顺时针打印矩阵 的 详细题解