Print matrix in Spiral Order
Problem:
Given a matrix of m x n elements (m rows, n columns), write a function that prints the elements in the matrix in a spiral manner.
Given a matrix of m x n elements (m rows, n columns), write a function that prints the elements in the matrix in a spiral manner.
Solution:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| void spiralOrder( int a[][], int m, int n, int k) { if (m <= 0 || n <= 0 ) return ; if (m == 1 ) { for ( int j = 0 ; j < n; j++) system.out.print(a[k][k+j] + " " ); return ; } if (n == 1 ) { for ( int i = 0 ; i < m; i++) system.out.print(a[k+i][k] + " " ); return ; } // print from top left for ( int j = 0 ; j < n - 1 ; j++) system.out.print(a[k][k+j] + " " ); // print from top right for ( int i = 0 ; i < m - 1 ; i++) system.out.print(a[k+i][k+n- 1 ] + " " ); // print from bottom right for ( int j = 0 ; j < n - 1 ; j++) system.out.print(a[k+m- 1 ][k+n- 1 -j] + " " ); // print from bottom left for ( int i = 0 ; i < m - 1 ; i++) system.out.print(a[k+m- 1 -i][k] + " " ); print_spiral(a, m- 2 , n- 2 , k+ 1 ); } |
No comments:
Post a Comment