Cyclically Rotating a Grid LeetCode solution in Python

1
class Solution:
2
def rotateGrid(self, grid: List[List[int]], k: int) -> List[List[int]]:
3
n = len(grid)
4
m = len(grid[0])
5

6
i, j = 0, 0
7
bottom, right = n - 1, m - 1
8
while i < n // 2 and j < m // 2:
9
temp = []
10
for x in range(j, right):
11
temp.append(grid[i][x])
12
for x in range(i, bottom):
13
temp.append(grid[x][right])
14
for x in range(right, j, -1):
15
temp.append(grid[bottom][x])
16
for x in range(bottom, i, -1):
17
temp.append(grid[x][j])
18

19
indx = 0
20
for x in range(j, right):
21
grid[i][x] = temp[(k + indx) % len(temp)]
22
indx += 1
23
for x in range(i, bottom):
24
grid[x][right] = temp[(k + indx) % len(temp)]
25
indx += 1
26
for x in range(right, j, -1):
27
grid[bottom][x] = temp[(k + indx) % len(temp)]
28
indx += 1
29
for x in range(bottom, i, -1):
30
grid[x][j] = temp[(k + indx) % len(temp)]
31
indx += 1
32

33
i += 1
34
j += 1
35
bottom -= 1
36
right -= 1
37
return grid

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0