Untitled
unknown
plain_text
a year ago
738 B
13
Indexable
class Solution {
public:
vector<int> spiralOrder(vector<vector<int>>& matrix) {
vector<int>ans;
vector<vector<int>>direction = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};
int c_size = matrix[0].size();
int r_size = matrix.size();
if(!c_size || !r_size)
return ans;
vector<int>step{c_size, r_size-1};
int dir = 0;
int r = 0, c = -1;
while(step[dir%2]){
for(int i = 0; i < step[dir%2]; i++){
r += direction[dir][0];
c += direction[dir][1];
ans.push_back(matrix[r][c]);
}
step[dir%2]--;
dir = (dir+1)%4;
}
return ans;
}
};Editor is loading...
Leave a Comment