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);
    }
};
相关推荐
Beginner x_u2 小时前
线性代数 第六讲 特征值和特征向量_相似对角化_实对称矩阵_重点题型总结详细解析
人工智能·线性代数·机器学习·矩阵·相似对角化
song439996 小时前
C++——矩阵无重复行列取数问题
开发语言·c++·矩阵
dot.Net安全矩阵16 小时前
.NET 一款在线解密Web.config的脚本
前端·学习·安全·web安全·oracle·矩阵·.net
wzf@robotics_notes1 天前
对极约束及其性质 —— 公式详细推导
计算机视觉·矩阵·机器人·几何学·相机
Beginner x_u1 天前
线性代数 第七讲 二次型_标准型_规范型_坐标变换_合同_正定二次型详细讲解_重难点题型总结
线性代数
使者大牙2 天前
深度学习中的常用线性代数知识汇总——第一篇:基础概念、秩、奇异值
人工智能·pytorch·python·深度学习·线性代数
使者大牙2 天前
深度学习中的常用线性代数知识汇总——第二篇:行列式、逆矩阵、特征值与特征向量
pytorch·python·深度学习·线性代数·矩阵
yukoyu2 天前
齐次变换矩阵的原理与应用
矩阵·机器人·机械臂
好心的小明2 天前
【动手学深度学习】05 线性代数(个人向笔记)
笔记·深度学习·线性代数
上课耽误学习2 天前
CCPC赛后补题-线性基
线性代数·算法·线性基