Untitled
unknown
plain_text
10 months ago
738 B
10
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