vector<int> spiralOrder(vector<vector<int>>& matrix) {
if(matrix.size() == 0) return {};
vector<int> v;
int x = -1,y = 0;
int mx = matrix[0].size();
int my = matrix.size();
int size = mx * my;
int lx = 0, ly = 0,rx = mx,ry = my;
while(v.size() != mx * my){
while(x + 1 < rx && v.size() !=size) v.push_back(matrix[y][++x]);ly++;
while(y + 1 < ry && v.size() !=size) v.push_back(matrix[++y][x]);rx--;
while(x - 1 >= lx && v.size() != size) v.push_back(matrix[y][--x]);ry--;
while(y - 1 >= ly && v.size() != size) v.push_back(matrix[--y][x]);lx++;
}
return v;
}
因篇幅问题不能全部显示,请点此查看更多更全内容