螺旋矩阵
高频题
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
vector<int> result;
vector<vector<bool>> path(matrix.size() , vector<bool>(matrix[0].size(),false));
int flag = 0;
int i = 0 , j = 0;
while(result.size() < (matrix.size()*matrix[0].size()) )
{
if(flag == 0)
{
while(j<matrix[0].size() && path[i][j] == false )
{
path[i][j] = true;
result.push_back(matrix[i][j]);
j++;
}
flag++;
j--;
i++;
}
if(flag == 1)
{
while( i<matrix.size() && path[i][j] == false )
{
path[i][j] = true;
result.push_back(matrix[i][j]);
i++;
}
flag++;
i--;
j--;
}
if(flag == 2)
{
while(j>=0 && path[i][j] == false )
{
path[i][j] = true;
result.push_back(matrix[i][j]);
j--;
}
flag++;
j++;
i--;
}
if(flag == 3)
{
while(i>=0 && path[i][j] == false )
{
path[i][j] = true;
result.push_back(matrix[i][j]);
i--;
}
flag = 0;
i++;
j++;
}
}
return result;
}
};