LeetCode-Spiral Matrix

来源:互联网 发布:用dwcs5制作淘宝 编辑:程序博客网 时间:2024/06/11 19:09
class Solution {public:    vector<int> spiralOrder(vector<vector<int> > &matrix) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        vector<int> vec;        if (matrix.size() == 0)        {            return vec;        }        int m = matrix.size();        int n = matrix[0].size();        for (int i = 0; i < (m >> 1) + (m & 1) && i < (n >> 1) + (n & 1); ++i)        {            int begX = i;            int endX = n - 1 - i;            int begY = i;            int endY = m - 1 - i;            for (int j = begX; j <= endX; ++j)            {                vec.push_back(matrix[begY][j]);            }            for (int j = begY + 1; j <= endY; ++j)            {                vec.push_back(matrix[j][endX]);            }            if (endY > begY)            {                for (int j = endX - 1; j >= begX; --j)                {                    vec.push_back(matrix[endY][j]);                }            }            if (endX > begX)            {                for (int j = endY - 1;j > begX; --j)                {                    vec.push_back(matrix[j][begX]);                }                }        }        return vec;    }};