karthikshetty03

Spiral_Matrix.cpp

May 15th, 2021
481
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #define N 1e5
  2. vector<int> spirallyTraverse(vector<vector<int> > matrix, int r, int c)
  3. {
  4.         //rows
  5.         int n = r;
  6.         //columns
  7.         int m = c;
  8.        
  9.         int p(0), q(0);
  10.         int k(0);
  11.    
  12.         vector<int> ans(N);
  13.    
  14.         while (p < n and q < m) {
  15.             for (int j = q; j < m; j++)
  16.                 ans[k++] = matrix[p][j];
  17.    
  18.             k--;
  19.    
  20.             for (int i = p; i < n; i++)
  21.                 ans[k++] = matrix[i][m - 1];
  22.    
  23.             k--;
  24.    
  25.             for (int j = m - 1; j >= q; j--)
  26.                 ans[k++] = matrix[n - 1][j];
  27.    
  28.             k--;
  29.    
  30.             for (int i = n - 1; i > p; i--)
  31.                 ans[k++] = matrix[i][q];
  32.    
  33.             p++;
  34.             q++;
  35.             n--;
  36.             m--;
  37.         }
  38.    
  39.         ans.resize(matrix.size()*matrix[0].size());
  40.         return ans;
  41.        
  42.     }
RAW Paste Data