59 螺旋矩陣 II

2021-09-22 12:50:57 字數 1115 閱讀 6237

一輪 四種遍歷 後,將座標更新到新一輪的初始位置 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...