// Java program to print a given matrix in spiral form
import java.io.*;
class GFG {
// Function print matrix in spiral form
static void spiralPrint(int m, int n, int a[][])
{
int i, k = 0, l = 0;
/* k - starting row index
m - ending row index
l - starting column index
n - ending column index
i - iterator
*/
while (k < m && l < n) {
// Print the first row from the remaining rows
for (i = l; i < n; ++i) {
System.
out.
print(a
[k
][i
] + " "); }
k++;
// Print the last column from the remaining columns
for (i = k; i < m; ++i) {
System.
out.
print(a
[i
][n
- 1] + " "); }
n--;
// Print the last row from the remaining rows */
if (k < m) {
for (i = n - 1; i >= l; --i) {
System.
out.
print(a
[m
- 1][i
] + " "); }
m--;
}
// Print the first column from the remaining columns */
if (l < n) {
for (i = m - 1; i >= k; --i) {
System.
out.
print(a
[i
][l
] + " "); }
l++;
}
}
}
// driver program
public static void main
(String[] args
) {
int R = 3;
int C = 6;
int a[][] = { { 1, 2, 3, 4, 5, 6 },
{ 7, 8, 9, 10, 11, 12 },
{ 13, 14, 15, 16, 17, 18 } };
spiralPrint(R, C, a);
}
}
Ly8gSmF2YSBwcm9ncmFtIHRvIHByaW50IGEgZ2l2ZW4gbWF0cml4IGluIHNwaXJhbCBmb3JtIAppbXBvcnQgamF2YS5pby4qOyAKCmNsYXNzIEdGRyB7IAoJLy8gRnVuY3Rpb24gcHJpbnQgbWF0cml4IGluIHNwaXJhbCBmb3JtIAoJc3RhdGljIHZvaWQgc3BpcmFsUHJpbnQoaW50IG0sIGludCBuLCBpbnQgYVtdW10pIAoJeyAKCQlpbnQgaSwgayA9IDAsIGwgPSAwOyAKCQkvKiBrIC0gc3RhcnRpbmcgcm93IGluZGV4IAoJCW0gLSBlbmRpbmcgcm93IGluZGV4IAoJCWwgLSBzdGFydGluZyBjb2x1bW4gaW5kZXggCgkJbiAtIGVuZGluZyBjb2x1bW4gaW5kZXggCgkJaSAtIGl0ZXJhdG9yIAoJCSovCgoJCXdoaWxlIChrIDwgbSAmJiBsIDwgbikgeyAKCQkJLy8gUHJpbnQgdGhlIGZpcnN0IHJvdyBmcm9tIHRoZSByZW1haW5pbmcgcm93cyAKCQkJZm9yIChpID0gbDsgaSA8IG47ICsraSkgeyAKCQkJCVN5c3RlbS5vdXQucHJpbnQoYVtrXVtpXSArICIgIik7IAoJCQl9IAoJCQlrKys7IAoKCQkJLy8gUHJpbnQgdGhlIGxhc3QgY29sdW1uIGZyb20gdGhlIHJlbWFpbmluZyBjb2x1bW5zIAoJCQlmb3IgKGkgPSBrOyBpIDwgbTsgKytpKSB7IAoJCQkJU3lzdGVtLm91dC5wcmludChhW2ldW24gLSAxXSArICIgIik7IAoJCQl9IAoJCQluLS07IAoKCQkJLy8gUHJpbnQgdGhlIGxhc3Qgcm93IGZyb20gdGhlIHJlbWFpbmluZyByb3dzICovIAoJCQlpZiAoayA8IG0pIHsgCgkJCQlmb3IgKGkgPSBuIC0gMTsgaSA+PSBsOyAtLWkpIHsgCgkJCQkJU3lzdGVtLm91dC5wcmludChhW20gLSAxXVtpXSArICIgIik7IAoJCQkJfSAKCQkJCW0tLTsgCgkJCX0gCgoJCQkvLyBQcmludCB0aGUgZmlyc3QgY29sdW1uIGZyb20gdGhlIHJlbWFpbmluZyBjb2x1bW5zICovIAoJCQlpZiAobCA8IG4pIHsgCgkJCQlmb3IgKGkgPSBtIC0gMTsgaSA+PSBrOyAtLWkpIHsgCgkJCQkJU3lzdGVtLm91dC5wcmludChhW2ldW2xdICsgIiAiKTsgCgkJCQl9IAoJCQkJbCsrOyAKCQkJfSAKCQl9IAoJfSAKCgkvLyBkcml2ZXIgcHJvZ3JhbSAKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIAoJeyAKCQlpbnQgUiA9IDM7IAoJCWludCBDID0gNjsgCgkJaW50IGFbXVtdID0geyB7IDEsIDIsIDMsIDQsIDUsIDYgfSwgCgkJCQkJeyA3LCA4LCA5LCAxMCwgMTEsIDEyIH0sIAoJCQkJCXsgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCB9IH07IAoJCXNwaXJhbFByaW50KFIsIEMsIGEpOyAKCX0gCn0g