1
1
package com .thealgorithms .others ;
2
2
3
+ import java .util .ArrayList ;
4
+ import java .util .List ;
5
+
3
6
public class PrintAMatrixInSpiralOrder {
4
7
/**
5
8
* Search a key in row and column wise sorted matrix
@@ -10,65 +13,53 @@ public class PrintAMatrixInSpiralOrder {
10
13
* @author Sadiul Hakim : https://github.com/sadiul-hakim
11
14
*/
12
15
13
- public void print (int [][] matrix , int row , int col ) {
16
+ public List < Integer > print (int [][] matrix , int row , int col ) {
14
17
15
- //r traverses matrix row wise from first
18
+ // r traverses matrix row wise from first
16
19
int r = 0 ;
17
- //c traverses matrix column wise from first
20
+ // c traverses matrix column wise from first
18
21
int c = 0 ;
19
22
int i ;
20
23
24
+ List <Integer > result = new ArrayList <>();
25
+
21
26
while (r < row && c < col ) {
22
- //print first row of matrix
27
+ // print first row of matrix
23
28
for (i = c ; i < col ; i ++) {
24
- System .out .print (matrix [r ][i ] + " " );
25
-
29
+ result .add (matrix [r ][i ]);
26
30
}
27
31
28
- //increase r by one because first row printed
32
+ // increase r by one because first row printed
29
33
r ++;
30
34
31
- //print last column
35
+ // print last column
32
36
for (i = r ; i < row ; i ++) {
33
- System . out . print (matrix [i ][col - 1 ] + " " );
37
+ result . add (matrix [i ][col - 1 ]);
34
38
}
35
39
36
- //decrease col by one because last column has been printed
40
+ // decrease col by one because last column has been printed
37
41
col --;
38
42
39
- //print rows from last except printed elements
43
+ // print rows from last except printed elements
40
44
if (r < row ) {
41
45
for (i = col - 1 ; i >= c ; i --) {
42
- System . out . print (matrix [row - 1 ][i ] + " " );
46
+ result . add (matrix [row - 1 ][i ]);
43
47
}
44
48
45
49
row --;
46
50
47
51
}
48
52
49
- //print columns from first except printed elements
53
+ // print columns from first except printed elements
50
54
if (c < col ) {
51
55
for (i = row - 1 ; i >= r ; i --) {
52
- System . out . print (matrix [i ][c ] + " " );
56
+ result . add (matrix [i ][c ]);
53
57
}
54
58
c ++;
55
59
}
56
60
57
61
}
58
-
62
+ return result ;
59
63
}
60
64
61
- public static void main (String [] args ) {
62
- int [][] matrix = {
63
- { 3 , 4 , 5 , 6 , 7 },
64
- { 8 , 9 , 10 , 11 , 12 },
65
- { 14 , 15 , 16 , 17 , 18 },
66
- { 23 , 24 , 25 , 26 , 27 },
67
- { 30 , 31 , 32 , 33 , 34 }
68
- };
69
-
70
- var printer = new PrintAMatrixInSpiralOrder ();
71
- printer .print (matrix , matrix .length , matrix [0 ].length );
72
-
73
- }
74
65
}
0 commit comments