Leetcode54. Spiral Matrix

来源:互联网 发布:mysql修改数据的语句 编辑:程序博客网 时间:2024/05/19 13:58

//便利走势只有四种右 下 左 上0123//往右走 决定最上的index 下走 决定右 左下 上左class Solution {public:    vector<int> spiralOrder(vector<vector<int>>& matrix)    {        vector<int> ans;        if(matrix.empty())return ans;        int zouxiang=0;//走向 右下左上 4变成0        int on_min=0;        int under_max=matrix.size()-1;//m-1;hang        int left_min=0;        int right_max=matrix[0].size()-1;//n-1;lie        int max=matrix.size()*matrix[0].size();        while(ans.size()!=max)        {            if(zouxiang==4)zouxiang=0;            if(zouxiang==0)//往右走 最上面一行 从左向右            {                int y=left_min;                while(y!=right_max+1)                {                    ans.push_back(matrix[on_min][y]);                    y++;                }                zouxiang++;                on_min++;//最上一行更新            }            else if(zouxiang==1)//往xia走 最you面一行 从shang向xia            {                int y=on_min;                while(y!=under_max+1)                {                    ans.push_back(matrix[y][right_max]);                    y++;                }                zouxiang++;                right_max--;            }            else if(zouxiang==2)//往zuo走 最xia面一行 从you向zuo            {                int y=right_max;                while(y!=left_min-1)                {                    ans.push_back(matrix[under_max][y]);                    y--;                }                zouxiang++;                under_max--;            }            else if(zouxiang==3)//往sahgn走 最zuo面一行 从xia向shang            {                int y=under_max;                while(y!=on_min-1)                {                    ans.push_back(matrix[y][left_min]);                    y--;                }                zouxiang++;                left_min++;            }        }        return ans;            }};

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].


原创粉丝点击