顺时针打印矩阵
Posted pacino12134
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了顺时针打印矩阵相关的知识,希望对你有一定的参考价值。
1 class Solution 2 public: 3 vector<int> printMatrix(vector<vector<int> > matrix) 4 vector<int> result; 5 if(matrix.empty()) return result; 6 int rows = matrix.size(); 7 int cols = matrix[0].size(); 8 //定义四个角标 9 int left = 0; 10 int right = cols-1; 11 int top_row = 0; 12 int end_row = rows-1; 13 while(left<=right && top_row<=end_row) 14 //打印第一行 15 for(int i=left;i<=right;i++) result.push_back(matrix[top_row][i]); 16 //打印右边的列 17 //判断边界,如果只有一行的情况就不push了 18 if(top_row<end_row) 19 for(int i=top_row+1;i<=end_row;i++) result.push_back(matrix[i][right]); 20 21 //打印最下面一行 22 //判断边界 23 if(left<right && top_row<end_row) 24 for(int i=right-1;i>=left;i--) result.push_back(matrix[end_row][i]); 25 26 //打印左边一列 27 //判断边界 28 if(top_row+1<end_row && left<right) 29 for(int i=end_row-1;i>=top_row+1;i--) result.push_back(matrix[i][left]); 30 31 left++;right--;top_row++;end_row--; 32 33 return result; 34 35 ;
以上是关于顺时针打印矩阵的主要内容,如果未能解决你的问题,请参考以下文章