[力扣 Hot100]Day19 螺旋矩阵
•
人工智能
题目描述
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。

出处
思路
用递归做,先输出最外层(顶行右列底行左列),再递归输出内层矩阵,对矩阵宽或高为1时进行特判并返回、
代码
class Solution {
private:
void order(vector<vector>& matrix, vector& res,int x1,int y1,int x2,int y2){
int w=x2-x1+1;
int h=y2-y1+1;
if(w==0||h==0) return;
if(w==1){
for(int i=y1; i<=y2; i++)
res.push_back(matrix[i][x1]);
return;
}
if(h==1){
for(int i=x1; i<=x2; i++)
res.push_back(matrix[y1][i]);
return;
}
for(int i=x1; i<x2; i++)//top
res.push_back(matrix[y1][i]);
for(int i=y1; ix1; i--)//bottom
res.push_back(matrix[y2][i]);
for(int i=y2; i>y1; i--)//left
res.push_back(matrix[i][x1]);
order(matrix,res,++x1,++y1,--x2,--y2);
}
public:
vector spiralOrder(vector<vector>& matrix) {
vector result;
int m=matrix.size();
int n=matrix[0].size();
order(matrix, result,0,0,n-1,m-1);
return result;
}
};
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/ed383699a7.html
