4
vector<vector<bool>> _visited;6
void spin(vector<vector<int>> &matrix, int direction, int i, int j) {8
_res.push_back(matrix[i][j]);13
if (j + 1 >= matrix[0].size() || _visited[i][j + 1]) {22
if (i + 1 >= matrix.size() || _visited[i + 1][j]) {31
if (j == 0 || _visited[i][j - 1]) {40
if (i == 0 || _visited[i - 1][j]) {48
if (i < 0 || i >= matrix.size() || j < 0 || j >= matrix[0].size()) {54
spin(matrix, direction, i, j);57
vector<int> spiralOrder(vector<vector<int>> &matrix) {59
_visited = vector<vector<bool>>(matrix.size(), std::vector<bool>(matrix[0].size(), false));60
spin(matrix, 0, 0, 0);