给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
示例:
输入: 3
输出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
class Solution:
def generateMatrix(self, n):
"""
:type n: int
:rtype: List[List[int]]
"""
arr = []
for x in range(n):
tmp = []
for y in range(n):
tmp.append(0)
arr.append(tmp)
symbol = 1
border = n - 1
row = 0
col = 0
count = 1
total = n * n
arr[int(n / 2)][int(n / 2)] = n * n
if n % 2 == 1:
total = total - 1
while count <= total:
if symbol == 1:
for index in range(border):
arr[row][col] = count
col += 1
count = count + 1
symbol = 2
elif symbol == 2:
for index in range(border):
arr[row][col] = count
row = row + 1
count = count + 1
symbol = 3
elif symbol == 3:
for index in range(border):
arr[row][col] = count
col = col - 1
count = count + 1
symbol = 4
elif symbol == 4:
for index in range(border):
arr[row][col] = count
row = row - 1
count = count + 1
row = row + 1
border = border - 2
symbol = 1
col = col + 1
return arr