[Leetcode]螺旋矩阵II
题目描述
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
示例:
输入: 3
输出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
解题思路
- 参考螺旋矩阵,在此基础上,变成赋值
实现代码
class Solution:
def generateMatrix(self, n: int) -> List[List[int]]:
res = [[0]*n for i in range(n)]
rowbegin = 0
rowend = n - 1
colbegin = 0
colend = n - 1
i = 1
while rowbegin <= rowend and colbegin <= colend:
#向右
for j in range(colbegin, colend + 1):
res[rowbegin][j] = i
i += 1
rowbegin += 1
#向下
for j in range(rowbegin, rowend + 1):
res[j][colend] = i
i += 1
colend -= 1
#向左
for j in range(colend, colbegin - 1, -1):
res[rowend][j] = i
i +=1
rowend -= 1
#向上
for j in range(rowend, rowbegin - 1, -1):
res[j][colbegin] = i
i += 1
colbegin += 1
return res