From 4586dd03e37c2987eca12f9814cf26ebaaf328d7 Mon Sep 17 00:00:00 2001 From: Ayan Date: Fri, 2 Oct 2020 21:21:08 +0530 Subject: [PATCH] add spiral 2D matrix code --- print_spiral_matrix.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 print_spiral_matrix.cpp diff --git a/print_spiral_matrix.cpp b/print_spiral_matrix.cpp new file mode 100644 index 0000000..0daceac --- /dev/null +++ b/print_spiral_matrix.cpp @@ -0,0 +1,30 @@ +//Given a number n print all the numbers from 1 to n2 into a 2D array in spiral form +class Solution { +public: + vector> generateMatrix(int n) { + vector> arr(n, vector(n)); + + int up=0, down=n-1, left=0, right=n-1; + vector flat; + int num=1; + while(num<=n*n){ + for(int j=left;j<=right && num<=n*n;j++) + arr[up][j]=num++; + up++; + + for(int i=up;i<=down && num<=n*n;i++) + arr[i][right]=num++; + right--; + + for(int j=right;j>=left && num<=n*n;j--) + arr[down][j]=num++; + down--; + + for(int i=down;i>=up && num<=n*n;i--) + arr[i][left]=num++; + left++; + } + + return arr; + } +}; \ No newline at end of file