#给你一个正整数 n
,生成一个包含 1
到 n2
所有元素,且元素按顺时针顺序螺旋排列的 nxn
正方形矩阵 matrix
。
class Solution(object):
def generateMatrix(self, n):
"""
:type n: int
:rtype: List[List[int]]
"""
l, r, t, b = 0, n-1, 0, n-1
mat = [[0]* n for _ in range(n)]
num, mat_sum = 1, n* n
#<=
while num <= mat_sum:
#从左到右
for i in range(l, r + 1):
mat[t][i] = num
num += 1
t += 1
#从上到下
for i in range(t, b + 1):
mat[i][r] = num
num += 1
r -= 1
#从右到左
for i in range(r, l-1, -1):
mat[b][i] = num
num += 1
b -= 1
#从下到上
for i in range(b, t-1, -1):
mat[i][l] = num
num += 1
l += 1
return mat