zoukankan      html  css  js  c++  java
  • leetcode[54]Spiral Matrix

    Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.

    For example,
    Given the following matrix:

    [
     [ 1, 2, 3 ],
     [ 4, 5, 6 ],
     [ 7, 8, 9 ]
    ]
    

    You should return [1,2,3,6,9,8,7,4,5].

    class Solution {
    public:
    void  solve(vector<vector<int>> &matrix, vector<int> &res, int left, int right, int up, int down)
    {
        if (up>down||left>right)
            return;
        if (up==down)
        {
            for (int j=left;j<=right;j++)
            {
               res.push_back(matrix[up][j]);
            }
            return;
        }
        if (left==right)
        {
            for (int i=up;i<=down;i++)
            {
                res.push_back(matrix[i][left]);
            }
            return;
        }
        for (int j=left;j<right;j++)
            res.push_back(matrix[up][j]);
        for (int i=up;i<down;i++)
            res.push_back(matrix[i][right]);
        for (int j=right;j>left;j--)
            res.push_back(matrix[down][j]);
        for(int i=down;i>up;i--)
            res.push_back(matrix[i][left]);
        solve(matrix, res, left+1, right-1, up+1, down-1);
    }
    vector<int> spiralOrder(vector<vector<int> > &matrix) 
    {
        vector<int> res;
        if(matrix.empty())return res;
        solve(matrix,res,0,matrix[0].size()-1,0,matrix.size()-1);
        return res;
    }
    };
  • 相关阅读:
    HDOJ骨头的诱惑
    DP Big Event in HDU
    hoj1078
    poj2728
    hoj1195
    poj2739
    poj2726
    海量并发也没那么可怕,运维准点下班全靠它!
    云上安全工作乱如麻,等保2.0来一下
    实践案例丨教你一键构建部署发布前端和Node.js服务
  • 原文地址:https://www.cnblogs.com/Vae1990Silence/p/4281543.html
Copyright © 2011-2022 走看看