1
class Solution:
2
def spiralMatrixIII(
3
self, rows: int, cols: int, rStart: int, cStart: int
4
) -> List[List[int]]:
5
ans = [[rStart, cStart]]
6
val = 1
7
i, j = rStart, cStart
8

9
def is_valid(i, j):
10
if 0 <= i < rows and 0 <= j < cols:
11
return True
12
return False
13

14
while True:
15
if len(ans) == rows * cols:
16
return ans
17

18
# go right val times
19
for _ in range(val):
20
j += 1
21
if is_valid(i, j):
22
ans.append([i, j])
23
# go bottom val times
24
for _ in range(val):
25
i += 1
26
if is_valid(i, j):
27
ans.append([i, j])
28
# go left val+1 times
29
for _ in range(val + 1):
30
j -= 1
31
if is_valid(i, j):
32
ans.append([i, j])
33
# go up val+1 times
34
for _ in range(val + 1):
35
i -= 1
36
if is_valid(i, j):
37
ans.append([i, j])
38
val += 2

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0