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);
    }
};
相关推荐
AI科技星12 分钟前
加速运动正电荷产生加速度反向引力场的详细求导过程
人工智能·线性代数·算法·机器学习·矩阵·概率论
救救孩子把20 小时前
62-机器学习与大模型开发数学教程-5-9 KKT条件详解
人工智能·线性代数·机器学习
byzh_rc20 小时前
[AI数学从入门到入土] 线性代数基础
人工智能·线性代数·机器学习
好奇龙猫1 天前
【大学院-筆記試験練習:线性代数和数据结构(16)】
数据结构·线性代数·决策树
AI科技星2 天前
张祥前统一场论的数学表述与概念梳理:从几何公设到统一场方程
人工智能·线性代数·算法·机器学习·矩阵·数据挖掘
求真求知的糖葫芦2 天前
耦合传输线分析学习笔记(六)不对称耦合微带线Z参数矩阵推导与应用
笔记·学习·矩阵·射频工程
求真求知的糖葫芦2 天前
耦合传输线分析学习笔记(七)不对称耦合微带线Y参数矩阵推导与应用
笔记·学习·矩阵·射频工程
Samson Bruce2 天前
【线性代数】
人工智能·线性代数·机器学习
求真求知的糖葫芦2 天前
简明微波2-12耦合传输线分析学习笔记(五)对称均匀耦合线Z参数矩阵推导
笔记·学习·矩阵·射频工程
星河天欲瞩2 天前
【深度学习Day4】线性代数基础
人工智能·深度学习·学习·线性代数