Skip to content

Commit d9b90cf

Browse files
Day 7 >> Spiral Matrix II
1 parent 1e43c5c commit d9b90cf

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

Diff for: LeetCode/December 2020/Spiral Matrix II.py

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#https://leetcode.com/explore/challenge/card/december-leetcoding-challenge/569/week-1-december-1st-december-7th/3557/
2+
class Solution:
3+
def generateMatrix(self, n: int) -> List[List[int]]:
4+
l=[[i for i in range(1,n+1)] for i in range(n)]
5+
k=n
6+
for i in range(n//2):
7+
if n>1:
8+
# diagonal 4*(k-1)
9+
if i==0:
10+
l[i+1][i]=4*(k-1)
11+
else:
12+
l[i+1][i]=l[i][i-1]+4*(k-1)
13+
# top left-right
14+
for j in range(i,n-i):
15+
l[i][j]=l[i][j-1]+1
16+
# left top-bottom
17+
for j in range(i+1,n-i+1):
18+
l[j][i-1]=l[j-1][i-1]-1
19+
#bottom left-right
20+
for j in range(i,n-i):
21+
l[n-i][j]=l[n-i][j-1]-1
22+
# right top-bottom
23+
for j in range(i,n-i+1):
24+
l[j][n-i]=l[j-1][n-i]+1
25+
26+
k-=2
27+
if n>1:
28+
if n%2:
29+
l[n//2][n//2]=l[n//2][n//2-1]+1
30+
l[n//2][n//2+1]=l[n//2-1][n//2+1]+1
31+
l[n//2+1][n//2-1]=l[n//2][n//2-1]-1
32+
l[n//2+1][n//2]=l[n//2+1][n//2-1]-1
33+
l[n//2+1][n//2+1]=l[n//2+1][n//2]-1
34+
else:
35+
l[n//2][n//2]=l[n//2][n//2-1]-1
36+
return l

0 commit comments

Comments
 (0)