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);
    }
};
相关推荐
熬了夜的程序员6 小时前
【LeetCode】89. 格雷编码
算法·leetcode·链表·职场和发展·矩阵
vvvdg17 小时前
求下列线性变换的矩阵
线性代数·矩阵·1024程序员节
数智顾问17 小时前
矩阵的奇异值分解(SVD)在三维图形学中的进阶应用
矩阵
大千AI助手2 天前
Frobenius范数:矩阵分析的万能度量尺
人工智能·神经网络·线性代数·矩阵·矩阵分解·l2范数·frobenius范数
会编程是什么感觉...2 天前
数学 - 基础线性代数
线性代数
吃着火锅x唱着歌2 天前
LeetCode 74.搜索二维矩阵
算法·leetcode·矩阵
dingzd952 天前
全平台内容排期与矩阵玩法
人工智能·线性代数·矩阵·web3·facebook·tiktok·instagram
陈苏同学2 天前
笔记1.4:机器人学的语言——三维空间位姿描述 (旋转矩阵 - 齐次变换矩阵 - 欧拉角 - 四元数高效表示旋转)
笔记·线性代数·算法·机器人
前端世界3 天前
从零实现一个可加减的Matrix矩阵类:支持索引、相等判断与实际场景应用
线性代数·矩阵
qq_ddddd4 天前
对于随机变量x1, …, xn,其和的范数平方的期望不超过n倍各随机变量范数平方的期望之和
人工智能·神经网络·线性代数·机器学习·概率论·1024程序员节