vector<int> spiralOrder(const vector<vector<int> > &A) { vector<int> result; long min_x=0,min_y=0,done=0,count=0,i=0,j=0; long n,max_x=A[0].size()-1, m,max_y=A.size()-1; long size=(max_x+1)*(max_y+1); while(count<size) { if(i==min_y && j==min_x) { if(done==1) { min_x++;min_y++;max_x--;max_y--;i=min_y;j=min_x; } else done=1; } result.push_back(A[i][j]); count++; if(i==min_y && j<max_x) j++; else if(i==min_y && j==max_x) i++; else if(i<max_y && j==max_x) i++; else if(i==max_y && j==max_x) j--; else if(i==max_y && j>min_x) j--; else if(i==max_y && j==min_x) i--; else if(i>min_y && j==min_x) i--; } return result; }
Monday, November 14, 2016
C++ Program to print a 2-d matrix/vector in spiral order
Labels:
c++,
Data Structures,
Implementation,
Logic