题目:
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]
.
代码如下:
vector<int> spiralOrder(vector<vector<int> > &matrix) {
vector<int> result;int row = matrix.size()-1;
if(row<0)return result;
int column = matrix[0].size()-1;
int beginrow=0,begincolumn=0;
while(beginrow<=row&&begincolumn<=column)
{
int i;
for(i=begincolumn;i<=column;i++)result.push_back(matrix[beginrow][i]);
for(i=beginrow+1;i<=row;i++)result.push_back(matrix[i][column]);
for(i=column-1;i>=begincolumn&&row>beginrow;i--)result.push_back(matrix[row][i]);
for(i=row-1;i>beginrow&&column>begincolumn;i--)result.push_back(matrix[i][begincolumn]);
begincolumn++;beginrow++;column--;row--;
}
return result;
}