-
Notifications
You must be signed in to change notification settings - Fork 1
/
solution.py
38 lines (26 loc) · 1.23 KB
/
solution.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class Solution:
def rotateGrid(self, grid: List[List[int]], k: int) -> List[List[int]]:
rows, cols = len(grid), len(grid[0])
for r in range(min(rows, cols) // 2):
i = j = r
vals = []
for jj in range(j, cols - j - 1):
vals.append(grid[i][jj])
for ii in range(i, rows - i - 1):
vals.append(grid[ii][cols - j - 1])
for jj in range(cols - j - 1, j, -1):
vals.append(grid[rows - i - 1][jj])
for ii in range(rows - i - 1, i, -1):
vals.append(grid[ii][j])
kk = k % len(vals)
vals = vals[kk:] + vals[:kk]
x = 0
for jj in range(j, cols - j - 1):
grid[i][jj] = vals[x]; x += 1
for ii in range(i, rows - i - 1):
grid[ii][cols - j - 1] = vals[x]; x += 1
for jj in range(cols - j - 1, j, -1):
grid[rows - i - 1][jj] = vals[x]; x += 1
for ii in range(rows - i - 1, i, -1):
grid[ii][j] = vals[x]; x += 1
return grid