From daebf964568875a2dfe62f5f1087ec653123d4a3 Mon Sep 17 00:00:00 2001 From: Priyam Samanta <66743585+dipsam@users.noreply.github.com> Date: Wed, 6 Oct 2021 11:59:05 +0530 Subject: [PATCH] Create spiralmatrix_leetcode.cpp --- spiralmatrix_leetcode.cpp | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 spiralmatrix_leetcode.cpp diff --git a/spiralmatrix_leetcode.cpp b/spiralmatrix_leetcode.cpp new file mode 100644 index 0000000..b8461f6 --- /dev/null +++ b/spiralmatrix_leetcode.cpp @@ -0,0 +1,45 @@ +class Solution { +public: + vector spiralOrder(vector>& matrix) { + + int startRow=0,endRow=matrix.size()-1,endCol=matrix[0].size()-1,startCol=0; + vector v; + + while(startRow<=endRow && startCol<=endCol){ + + //start row + for(int col=startCol;col<=endCol;col++) + v.push_back(matrix[startRow][col]); + + //end column + for(int row=startRow+1;row<=endRow;row++) + v.push_back(matrix[row][endCol]); + + //end row + for(int col=endCol-1;col>=startCol;col--){ + + //avoinding duplicate printing in row + if(startRow==endRow) + break; + v.push_back(matrix[endRow][col]); + } + + //start column + for(int row=endRow-1;row>=startRow+1;row--){ + + //avoiding duplicate printing in column + if(startCol==endCol) + break; + v.push_back(matrix[row][startCol]); + } + + //update variables to point inner spirals + startRow++; + endRow--; + startCol++; + endCol--; + } + return v; + + } +};