# 螺旋矩阵
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
示例 1:

输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[1,2,3,6,9,8,7,4,5]
示例 2:

输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
输出:[1,2,3,4,8,12,11,10,9,5,6,7]
提示:
m == matrix.length n == matrix[i].length 1 <= m, n <= 10 -100 <= matrix[i][j] <= 100
以下程序实现了这一功能,请你填补空白处内容:
```cpp
#include
using namespace std;
class Solution
{
public:
vector spiralOrder(vector> &matrix)
{
vector ans;
if (matrix.size() == 0)
return ans;
int cir = 0;
int row = matrix.size();
int col = matrix[0].size();
int max_cir = int(min(matrix.size(), matrix[0].size()) + 1) / 2;
for (; cir < max_cir; cir++)
{
for (int i = cir; i < col - cir; i++)
{
ans.push_back(matrix[cir][i]);
}
for (int i = cir + 1; i < row - cir; i++)
{
ans.push_back(matrix[i][col - 1 - cir]);
}
__________________;
for (int i = row - 2 - cir; i > cir && (col - 1 - cir != cir); i--)
{
ans.push_back(matrix[i][cir]);
}
}
return ans;
}
};
```
## template
```cpp
#include
using namespace std;
class Solution
{
public:
vector spiralOrder(vector> &matrix)
{
vector ans;
if (matrix.size() == 0)
return ans;
int cir = 0;
int row = matrix.size();
int col = matrix[0].size();
int max_cir = int(min(matrix.size(), matrix[0].size()) + 1) / 2;
for (; cir < max_cir; cir++)
{
for (int i = cir; i < col - cir; i++)
{
ans.push_back(matrix[cir][i]);
}
for (int i = cir + 1; i < row - cir; i++)
{
ans.push_back(matrix[i][col - 1 - cir]);
}
for (int i = col - 2 - cir; i >= cir && (row - 1 - cir != cir); i--)
{
ans.push_back(matrix[row - cir - 1][i]);
}
for (int i = row - 2 - cir; i > cir && (col - 1 - cir != cir); i--)
{
ans.push_back(matrix[i][cir]);
}
}
return ans;
}
};
```
## 答案
```cpp
for (int i = col - 2 - cir; i >= cir && (row - 1 - cir != cir); i--)
{
ans.push_back(matrix[row - cir - 1][i]);
}
```
## 选项
### A
```cpp
for (int i = col - 2 - cir; i >= cir && (row - 1 - cir != cir); i--)
{
ans.push_back(matrix[row - cir + 1][i]);
}
```
### B
```cpp
for (int i = col - 2 - cir; i >= cir && (row - 1 - cir != cir); i--)
{
ans.push_back(matrix[row - cir][i]);
}
```
### C
```cpp
for (int i = col - 2 - cir;row - 1 - cir != cir; i--)
{
ans.push_back(matrix[row - cir + 1][i]);
}
```