-
Notifications
You must be signed in to change notification settings - Fork 316
Expand file tree
/
Copy path59_SpiralMatrixII.py
More file actions
executable file
·50 lines (41 loc) · 1.24 KB
/
59_SpiralMatrixII.py
File metadata and controls
executable file
·50 lines (41 loc) · 1.24 KB
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
39
40
41
42
43
44
45
46
47
48
49
50
#! /usr/bin/env python
# -*- coding: utf-8 -*-
class Solution(object):
def generateMatrix(self, n):
"""
:type n: int
:rtype: List[List[int]]
"""
if not n:
return []
matrix = [[-1 for row in range(n)] for col in range(n)]
current_num = 1
step = 0
while step < n / 2:
edge_len = n - 1 - 2 * step
# Get number from left to right(up edge)
for i in range(edge_len):
matrix[step][i + step] = current_num
current_num += 1
# Get number from up to down(right edge)
for i in range(edge_len):
matrix[i + step][n - 1 - step] = current_num
current_num += 1
# Get number from right to left(down edge)
for i in range(edge_len):
matrix[n - 1 - step][n - 1 - step - i] = current_num
current_num += 1
# Get number from down to up(left edge)
for i in range(edge_len):
matrix[n - 1 - step - i][step] = current_num
current_num += 1
step += 1
if n % 2 == 1:
matrix[n/2][n/2] = current_num
return matrix
"""
0
1
3
4
"""