剑指 Offer 29. 顺时针打印矩阵(简单)
题目:
//不可以用代码随想录里螺旋矩阵的思路
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
vector<int> result;
if(matrix.empty()) return result;
int rl=0,rh=matrix.size()-1; //定义上下边界
int cl=0,ch=matrix[0].size()-1; //定义左右边界
while(1){
for(int i=cl;i<=ch;i++)result.push_back(matrix[rl][i]); //从左到右
if(++rl>rh)break; //上边界先加一,再判断会不会超出下边界
for(int i=rl;i<=rh;i++)result.push_back(matrix[i][ch]); //从上到下
if(--ch<cl)break; //右边界先减一,再判断会不会超出左边界
for(int i=ch;i>=cl;i--)result.push_back(matrix[rh][i]); //从右到左
if(--rh<rl)break; //下边界减一判断会不会超出上边界
for(int i=rh;i>=rl;i--)result.push_back(matrix[i][cl]); //从下到上
if(++cl>ch)break;
}
return result;
}
};
以上代码转自力扣评论区