diff --git a/MatrixSpiralTraversal.java b/MatrixSpiralTraversal.java new file mode 100644 index 0000000..2dd77d1 --- /dev/null +++ b/MatrixSpiralTraversal.java @@ -0,0 +1,88 @@ +import java.io.*; +import java.util.*; +class MatrixSpiralTraversal +{ + public static void main(String args[])throws IOException + { + Scanner sc = new Scanner(System.in); + int t = sc.nextInt(); + + while(t-- > 0) + { + int r = sc.nextInt(); + int c = sc.nextInt(); + + int matrix[][] = new int[r][c]; + + for(int i = 0; i < r; i++) + { + for(int j = 0; j < c; j++) + matrix[i][j] = sc.nextInt(); + } + Solution ob = new Solution(); + ArrayList ans = ob.spirallyTraverse(matrix, r, c); + for (Integer val: ans) + System.out.print(val+" "); + System.out.println(); + } + } +}// } Driver Code Ends + + +class Solution{ + static ArrayList spirallyTraverse(int matrix[][], int r, int c) + { + ArrayList res=new ArrayList<>(); + // code here + int minrow=0,mincol=0; + int maxrow=r-1,maxcol=c-1; + int counter=0; + while(counter=mincol;col--) + { res.add(matrix[maxrow][col]); + counter++; + //System.out.println(matrix[maxrow][col]); + } + } + maxrow--; + if(counter==r*c) + break; + else{ + for(int row=maxrow;row>=minrow;row--) + { res.add(matrix[row][mincol]); + counter++; + // System.out.println(matrix[row][mincol]); + } + } + + mincol++; + } + return res; + } +}