leetcode日记(42)螺旋矩阵

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

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);
    }
};

相关推荐

  1. LeetCode 54. 螺旋矩阵

    2024-07-18 10:02:04       35 阅读
  2. Golang leetcode59 螺旋矩阵

    2024-07-18 10:02:04       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 10:02:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 10:02:04       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 10:02:04       58 阅读
  4. Python语言-面向对象

    2024-07-18 10:02:04       69 阅读

热门阅读

  1. spark的相关知识点

    2024-07-18 10:02:04       18 阅读
  2. AI发展下的伦理挑战:应对策略与思考

    2024-07-18 10:02:04       21 阅读
  3. pytest钩子hook使用2

    2024-07-18 10:02:04       17 阅读
  4. Gmsh教程

    2024-07-18 10:02:04       16 阅读
  5. 前后端分离项目规范——接口文档示例

    2024-07-18 10:02:04       21 阅读
  6. PHP框架详解:Symfony框架

    2024-07-18 10:02:04       24 阅读
  7. 手写实现getUrlParams方法

    2024-07-18 10:02:04       20 阅读
  8. Ansible 入门:从安装到实际应用

    2024-07-18 10:02:04       19 阅读
  9. 海康相机 导入包MvImport的问题

    2024-07-18 10:02:04       25 阅读