0%

leetcode题解59:螺旋矩阵 II

描述

该题来自于力扣第59题

分析

该题与力扣第54题类似,依然是按照层数遍历,遍历到的位置将值赋给数组即可。

代码

python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution:
def generateMatrix(self, n: int) -> List[List[int]]:
max_layer = (n + 1) // 2
ans = [[0]*n for _ in range(n)]
number = 1
for layer in range(max_layer):
for i in range(layer, n-layer):
ans[layer][i] = number
number += 1
for i in range(layer+1, n-layer):
ans[i][n-layer-1] = number
number += 1
if len(ans) == n *n:
return ans
for i in range(n-layer-2, layer-1, -1):
ans[n-layer-1][i] = number
number += 1
for i in range(n-layer-2, layer, -1):
ans[i][layer] = number
number += 1
return ans