問題描述
- 給定一個正整數 n,生成一個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。
示例:
輸入: 3
輸出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
問題分析
設置一個動態的數字選擇特定行數或者列數,螺旋賦值
代碼
class Solution:
def generateMatrix(self, n: int) -> List[List[int]]:
array = [[0 for i in range(n)] for j in range(n)]
c, j = 1, 0
while c<=n*n:
# 從左向右
for i in range(j, n-j):
array[j][i] = c
c += 1
# 從上往下走
for i in range(j+1, n-j):
array[i][n-j-1] = c
c += 1
# 從右往左走
for i in range(n-j-2, j-1, -1):
array[n-j-1][i] = c
c += 1
# 從下往上走
for i in range(n-j-2, j, -1):
array[i][j] = c
c += 1
j += 1
return array