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);
    }
};
相关推荐
搞笑症患者7 小时前
LeetCode Hot100 - 矩阵篇
算法·leetcode·矩阵
2403_875180957 小时前
抖音SEO矩阵系统:开发技术分享
线性代数·矩阵
iiiiiankor11 小时前
LeetCode54.螺旋矩阵&& LeetCode59.螺旋矩阵Ⅱ(螺旋矩阵问题)
线性代数·矩阵
戊子仲秋18 小时前
【LeetCode】每日一题 2024_11_23 矩阵中的蛇(哈希、计数)
leetcode·矩阵·哈希算法
Leweslyh1 天前
线性代数的发展简史
线性代数
Leweslyh1 天前
线性代数公式速记手册
笔记·学习·线性代数
彭彭不吃虫子1 天前
【离散数学】特殊关系的矩阵表示
决策树·机器学习·矩阵
DW_DROME1 天前
02向量与矩阵方程
线性代数·算法·矩阵
safety_14042 天前
矩阵/矩阵乘法/特征征/特征向量的讲解
线性代数·矩阵
qq_273900232 天前
旋转向量v和旋转矩阵R
人工智能·python·线性代数·矩阵