一輪 四種遍歷 後,將座標更新到新一輪的初始位置 x += 1 y += 1
初始步長 step = n - 1, 之後更新步長 step -= 2
n為奇數時,最後四種遍歷完之後,再新增處於最中間的數
class
solution
:def
generatematrix
(self, n:
int)
-> list[list[
int]]:
result =[[
0for j in
range
(n)]
for i in
range
(n)]
x =0 y =
0 num =
1# 定義螺線座標變化
dx =[0
,1,0
,-1]
dy =[1
,0,-
1,0]
step = n -
1while step >0:
for i in
range(4
):for j in
range
(step)
:
result[x]
[y]= num
# 更新座標
x += dx[i]
y += dy[i]
# 更新數值
num +=
1# 四種變換之後 更新座標到新的起始點
x +=
1 y +=
1# 更新步長
step -=
2# 當n為奇數時, 再新增乙個處於最中間的數
if step ==0:
result[x]
[y]= num
return result
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
給定乙個正整數 n,生成乙個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。示例 輸入 3 輸出 1,2,3 8,9,4 7,6,5 順時針畫矩陣的過程,用文字描述有 1 從左到右,填充上行 2 從上到下,填充右列 3 從右到左,填充下行 4 從下到上,填充左列 四個為一圈往裡...
59 螺旋矩陣 II
給定乙個正整數 n,生成乙個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。示例 輸入 3 輸出 1,2,3 8,9,4 7,6,5 1 class solution 15 col 16 row 17 右列18 while col n 1 i rowi 22 row 23 co...