題目:
給定乙個正整數 n,生成乙個包含 1 到 n平方 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。
示例:輸入: 3
輸出:[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]思路:
螺旋的給矩陣賦值。每到邊緣,變換遍歷方向。
**:
class solution(object):
def generatematrix(self, n):
""":type n: int
:rtype: list[list[int]]
"""res=[[0 for i in range(n)] for j in range(n)]
num=1
i=0while num<=n*n:
#從左向右羅列
for k in range(i,n-i):
res[i][k]=num
num+=1
#從上到下遍歷
for k in range(i+1,n-i):
res[k][n-i-1]=num
num+=1
#從右往左遍歷
for k in range(n-i-2,i-1,-1):
res[n-i-1][k]=num
num+=1
#從下往上遍歷
for k in range(n-i-2,i,-1):
res[k][i]=num
num+=1
i+=1
return res
59 螺旋矩陣 II
給定乙個正整數 n,生成乙個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。示例 輸入 3 輸出 1,2,3 8,9,4 7,6,5 class solution for int i 0 i 2 num 1 i 如果不是第乙個圈,個數需要減少1 if x 1 else r1 n...
59 螺旋矩陣 II
一輪 四種遍歷 後,將座標更新到新一輪的初始位置 x 1 y 1 初始步長 step n 1,之後更新步長 step 2 n為奇數時,最後四種遍歷完之後,再新增處於最中間的數 class solution def generatematrix self,n int list list int res...
59 螺旋矩陣 II
給定乙個正整數 n,生成乙個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。示例 輸入 3 輸出 1,2,3 8,9,4 7,6,5 順時針畫矩陣的過程,用文字描述有 1 從左到右,填充上行 2 從上到下,填充右列 3 從右到左,填充下行 4 從下到上,填充左列 四個為一圈往裡...