//从Spiral Matrix II 改变过来的
//设定tot来确定是否完成spiral
class Solution {
public:vector<int> spiralOrder(vector<vector<int> > &matrix) {
vector<int> result;
int m=matrix.size();
if(m==0)return result;
int n=matrix[0].size();
//if(m==0||n==0)return result;
int tot=0;
int lvl=-1;
while(tot<m*n)
{
lvl++;
for(int up = lvl;up<n-lvl&&tot<m*n;up++,tot++)
result.push_back(matrix[lvl][up]);
if(tot<m*n)
for(int right = lvl+1;right<m-lvl-1&&tot<m*n;right++,tot++)
result.push_back(matrix[right][n-lvl-1]);
if(tot<m*n)
for(int down = n-lvl-1;down>=lvl&&tot<m*n;down--,tot++)
result.push_back(matrix[m-lvl-1][down]);
if(tot<m*n)
for(int left = m-lvl-1-1;left>=lvl+1&&tot<m*n;left--,tot++)
result.push_back(matrix[left][lvl]);
if(tot==m*n-1&&tot%2==0)
{result.push_back(m*n/2+1);tot++;}
}
return result;
}
};