Leetcode題目59 螺旋矩陣 II

2021-10-05 05:25:51 字數 1136 閱讀 6487

給定乙個正整數 n,生成乙個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。

示例:

輸入: 3

輸出:[

[ 1, 2, 3 ],

[ 8, 9, 4 ],

[ 7, 6, 5 ]

]

class

solution

:def

generatematrix

(self, n:

int)

-> list[list[

int]]:

ifnot n:

return

tx =[0

,1,0

,-1]

#方向座標

ty =[1

,0,-

1,0]

list0 =

[i+1

for i in

range

(n**2)

] list1 =[[

none

for i in

range

(n)]

for j in

range

(n)]

x, y =0,

0#當前位置

t =0#變化量

record =

#記錄已經走過的座標

for i in

range

(n**2)

: list1[x]

[y]= list0[i]

[x, y]

) tempx, tempy = x + tx[t]

, y + ty[t]if0

<= tempx < n and

0<= tempy < n and

[tempx, tempy]

notin record:

x, y = tempx, tempy

else

: t =

(t+1)%

4 x, y = x + tx[t]

, y + ty[t]

return list1

LeetCode筆記 59螺旋矩陣

題目 給定乙個正整數 n,生成乙個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。示例 輸入 3輸出 1,2,3 8,9,4 7,6,5 思路 直接看了網上大神的 和leetcode上最快的 先把這兩個程式看懂。public class solution else if j n...

leetcode 59 螺旋矩陣

題目要求 按照順時針螺旋順序 構建乙個n n的螺旋矩陣 思路 參照之前的54題輸出螺旋矩陣的思路 將單圈拆開為四個部分。每個部分迴圈的長度是相同的。單圈迴圈完之後,起始座標向右下移乙個單位,單次迴圈長度減二。對於偶數階矩陣,正常結束。對於奇數階矩陣,因為迴圈長度會減到0,需要手動加入最後最中間的乙個...

螺旋方陣(Leetcode第59題)

問題描述 螺旋矩陣 include include int main int n scanf d n int i,c 0,r 0,num 0,cnt n 2 int a n n while cnt for i r i r 1 i a n r i num 減減方法 思路 最開始我做題的想法不是這樣的,...