LeetCode之Spiral Matrix

2014-11-24 11:00:00 · 作者: · 浏览: 0

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

#include 
  
   
class Solution {
public:
	vector
   
     spiralOrder(vector
    
     > &matrix) { vector
     
       result; if (matrix.size() == 0) return result; int rowB = 0, rowE = matrix.size()-1; int columnB = 0, columnE = matrix[0].size()-1; while(true){ //left->right for (int i = columnB; i <= columnE; i++) result.push_back(matrix[rowB][i]); if (++rowB > rowE) break; //top->bottom for (int i = rowB; i <= rowE; i++) result.push_back(matrix[i][columnE]); if (--columnE < columnB) break; //right->left for (int i = columnE; i >= columnB; i--) result.push_back(matrix[rowE][i]); if (--rowE < rowB) break; //bottom->top for (int i = rowE; i >= rowB; i--) result.push_back(matrix[i][columnB]); if (++columnB > columnE) break; }//while return result; } };