1
class Solution {
2
public int[][] spiralMatrix(int m, int n, ListNode head) {
3
int[][] ans = new int[m][n];
4
for (int[] arr : ans) {
5
Arrays.fill(arr, -1);
6
}
7

8
int rowBegin = 0;
9
int rowEnd = m - 1;
10
int columnBegin = 0;
11
int columnEnd = n - 1;
12
ListNode cur = head;
13

14
while (rowBegin <= rowEnd && columnBegin <= columnEnd && cur != null) {
15

16
for (int i = columnBegin; i <= columnEnd && cur != null; i++) {
17
if (cur != null) {
18
ans[rowBegin][i] = cur.val;
19
}
20

21
cur = cur.next;
22
}
23
rowBegin++;
24
for (int i = rowBegin; i <= rowEnd && cur != null; i++) {
25
if (cur != null) {
26
ans[i][columnEnd] = cur.val;
27
}
28

29
cur = cur.next;
30
}
31
columnEnd--;
32
if (rowBegin <= rowEnd) {
33
for (int i = columnEnd; i >= columnBegin && cur != null; i--) {
34
if (cur != null) {
35
ans[rowEnd][i] = cur.val;
36
}
37

38
cur = cur.next;
39
}
40
}
41
rowEnd--;
42
if (columnBegin <= columnEnd) {
43
for (int i = rowEnd; i >= rowBegin && cur != null; i--) {
44
if (cur != null) {
45
ans[i][columnBegin] = cur.val;
46
}
47

48
cur = cur.next;
49
}
50
}
51
columnBegin++;
52
}
53
return ans;
54
}
55
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0