1class Solution:2def spiralMatrixIII(3self, rows: int, cols: int, rStart: int, cStart: int4) -> List[List[int]]:5ans = [[rStart, cStart]]6val = 17i, j = rStart, cStart89def is_valid(i, j):10if 0 <= i < rows and 0 <= j < cols:11return True12return False1314while True:15if len(ans) == rows * cols:16return ans1718# go right val times19for _ in range(val):20j += 121if is_valid(i, j):22ans.append([i, j])23# go bottom val times24for _ in range(val):25i += 126if is_valid(i, j):27ans.append([i, j])28# go left val+1 times29for _ in range(val + 1):30j -= 131if is_valid(i, j):32ans.append([i, j])33# go up val+1 times34for _ in range(val + 1):35i -= 136if is_valid(i, j):37ans.append([i, j])38val += 2