首页 > 代码库 > Spiral Matrix

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

只适合方阵的C++实现代码:

vector<int> spiralOrder(vector<vector<int> > &matrix)    {        if(matrix.empty()||matrix[0].empty())            return vector<int>();        vector<int> ret;        int n=matrix.size();        int count=n*n;        int i=0;        int j=0;        while(count)        {            if(count==1)            {                ret.push_back(matrix[i][j]);                break;            }            for(; j<n-i-1; j++)            {                ret.push_back(matrix[i][j]);                count--;            }            for(; i<j; i++)            {                ret.push_back(matrix[i][j]);                count--;            }            for(; j>n-i-1; j--)            {                ret.push_back(matrix[i][j]);                count--;            }            for(; i>j; i--)            {                ret.push_back(matrix[i][j]);                count--;            }            i++;            j++;        }        return ret;    }

 

Spiral Matrix