File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change 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
You can’t perform that action at this time.
0 commit comments