######################################## 模拟题 ######################################## 螺旋矩阵 **************************************** 给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。 [#matrix]_ .. code-block:: cpp class Solution { public: vector spiralOrder(vector > &matrix) { if(matrix.size() == 0) return {}; vector result; int top = 0, bottom = matrix.size() - 1; int left = 0, right = matrix[0].size() - 1; while(top <= matrix.size() / 2 && left <= matrix[0].size() / 2) { // top l -> r for(int i = left; i <= right; ++i) result.push_back(matrix[top][i]); // left top -> bottom for(int i = top + 1; i <= bottom; ++i) result.push_back(matrix[i][right]); // bottom r -> l for(int i = right - 1; top != bottom && i >= left; --i) result.push_back(matrix[bottom][i]); // l bottom -> top for(int i = bottom - 1; left != right && i >= top + 1; --i) result.push_back(matrix[i][left]); ++top; --bottom; ++left; --right; } return {result.begin(), result.begin() + matrix.size()*matrix[0].size()}; } }; .. [#matrix] `螺旋矩阵 `_