jayati

Spiral Matrix II

May 9th, 2023
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.43 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     vector<vector<int>> generateMatrix(int n) {
  4.         vector<int> ans;
  5.         for(int i=1;i<=(n*n);i++)
  6.         {
  7.             ans.push_back(i);
  8.         }
  9.         int p=0;
  10.         vector<vector<int>> matrix(n, vector<int>(n, 0));
  11.  
  12.             int top = 0, down = n - 1, left = 0, right = n - 1;
  13.             while (true) {
  14.                 for (int j = left; j <= right; j++)
  15.                 {
  16.                    matrix[top][j]=ans[p];
  17.                    p++;
  18.                 }
  19.                 if (++top > down)
  20.                 {
  21.                    break;
  22.                 }
  23.                 for (int i = top; i <= down; i++)
  24.                 {
  25.                   matrix[i][right]=ans[p];
  26.                   p++;
  27.                 }
  28.                 if (--right < left)
  29.                 {
  30.                   break;
  31.                 }
  32.                 for (int j = right; j >= left; j--)
  33.                 {
  34.                  matrix[down][j]=ans[p];
  35.                  p++;
  36.                 }
  37.                
  38.                 if (--down < top)
  39.                 {
  40.                   break;
  41.                 }
  42.                 for (int i = down; i >= top; i--)
  43.                 {
  44.                   matrix[i][left]=ans[p];
  45.                   p++;
  46.                 }
  47.                 if (++left > right)
  48.                 {
  49.                  break;
  50.                 }
  51.        
  52.     }
  53.     return matrix;
  54.     }
  55. };
Advertisement
Add Comment
Please, Sign In to add comment