Leetcode 921 Solution
This article provides solution to leetcode question 921 (spiral-matrix-iii)
Access this page by simply typing in "lcs 921" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/spiral-matrix-iii
Solution
class Solution:
def spiralMatrixIII(self, R: int, C: int, r0: int, c0: int) -> List[List[int]]:
directions = [
(0, 1),
(1, 0),
(0, -1),
(-1, 0),
]
cur_dir = 0
ans = []
step = 1
r = r0
c = c0
while len(ans) < R * C:
for _ in range(2):
for i in range(step):
if 0 <= r < R and 0 <= c < C:
ans.append((r, c))
if len(ans) == R * C:
return ans
r += directions[cur_dir][0]
c += directions[cur_dir][1]
cur_dir = (cur_dir + 1) % 4
step += 1