leetcode日记(42)螺旋矩阵

我使用的是递归,每次递归遍历一圈矩阵,将遍历结果塞进结果vector中,每次遍历修改上下左右边界,直至遍历后其中两边界重合或交错。

cpp 复制代码
class Solution {
public:
    vector<int> spiralOrder(vector<vector<int>>& matrix) {
        int m=matrix.size();
        int n=matrix[0].size();
        vector<int> result;
        Order(result,matrix,m-1,n-1,0,0);
        return result;
    }
    void Order(vector<int> &result,vector<vector<int>> matrix,int m,int n,int mm,int nn){
        if(mm==nn&&m==n&&mm==m) {result.push_back(matrix[mm][nn]);return ;}
        if(mm==m) {for(int i=nn;i<=n;i++) result.push_back(matrix[mm][i]);return ;}
        if(nn==n) {for(int i=mm;i<=m;i++) result.push_back(matrix[i][n]);return ;}
        for(int i=nn;i<n;i++) result.push_back(matrix[mm][i]);
        for(int i=mm;i<m;i++) result.push_back(matrix[i][n]);
        for(int i=n;i>nn;i--) result.push_back(matrix[m][i]);
        for(int i=m;i>mm;i--) result.push_back(matrix[i][nn]);
        if(mm==m-1||nn==n-1) return ;
        if(m>mm&&n>nn) Order(result,matrix,m-1,n-1,mm+1,nn+1);
    }
};
相关推荐
西西弗Sisyphus8 小时前
线性代数 - 矩阵的等价标准形
线性代数·矩阵·等价标准形
前端小L9 小时前
图论专题(十七):从“判定”到“构造”——生成一份完美的「课程表 II」
算法·矩阵·深度优先·图论·宽度优先
冰西瓜60013 小时前
模与内积(五)矩阵分析与应用 国科大
线性代数·算法·矩阵
AIminminHu14 小时前
底层视觉及图像增强-项目实践理论补充(十六-0-(19):HDR多帧对齐中的关键帧对齐与变换矩阵插值技术):从奥运大屏,到手机小屏,快来挖一挖里面都有什么
线性代数·矩阵·多帧对齐·关键帧对齐·变换矩阵插值
西西弗Sisyphus2 天前
线性代数 - 叉积的分量形式与矩阵形式
线性代数·矩阵·行列式·determinant
豆沙粽子好吃嘛!3 天前
从LQR到iLQR的简明易懂过程(一)
线性代数
CoderYanger3 天前
A.每日一题——2536. 子矩阵元素加 1
java·线性代数·算法·leetcode·矩阵
醒过来摸鱼3 天前
9.12 sinc插值
python·线性代数·算法·numpy
虹科测试测量3 天前
德思特干货 | 单通道、多通道衰减器与衰减矩阵:如何选择合适的衰减方案
服务器·测试工具·算法·矩阵