給定乙個正整數 n,生成乙個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。
示例:輸入: 3
輸出:[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]解題思路:本題採用迴圈賦值的方法,其關鍵之處如何對提前建立的列表進行螺旋遍歷並賦值,本題通過設定兩個標誌位實現遍歷的過程中轉向,程式設定a,b,x,y四個變數,其中a,b代表橫縱座標,x,y代表轉向標誌。當x為0時,則遍歷的過程中橫座標不變,當y為0時,則遍歷的過程中縱座標不變,當x為-1時,遍歷由下往上,當y為-1時,遍歷由左往右。每一輪遍歷通過將x,y加到座標a,b上改變遍歷位置。關於轉向條件的設定,每當遍歷的矩陣的拐角,則將y賦值給x,-x賦值給y,由此實現轉向。**如下:
class
solution
:def
generatematrix
(self, n:
int)
-> list[list[
int]]:
result =[[
0]*n for _ in
range
(n)]
a, b, x, y =0,
0,0,
1for i in
range(1
, n**2+
1): result[a]
[b]= i
if result[
(a+x)
%n][
(b+y)
%n]:
x, y = y,
-x a += x
b += y
return result
提交後,通過。 Leetcode第五十題 Pow x, n
題目 實現 pow x,n 即計算 x 的 n 次冪函式。示例 1 輸入 2.00000,10 輸出 1024.00000 示例 2 輸入 2.10000,3 輸出 9.26100 示例 3 輸入 2.00000,2 輸出 0.25000 解釋 2 2 1 22 1 4 0.25 說明 100.0 ...
解題思路 leetcode第五十六題 合併區間
給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 1,4 4,5 輸出 1,5 解釋 區間 1,4 和 4,5 可被視為重疊區間。解題思路 本...
解題思路 leetcode第五十四題 螺旋矩陣
題目描述 給定乙個包含 m x n 個元素的矩陣 m 行,n 列 請按照順時針螺旋順序,返回矩陣中的所有元素。示例 1 輸入 1,2,3 4,5,6 7,8,9 輸出 1,2,3,6,9,8,7,4,5 示例 2 輸入 1,2,3,4 5,6,7,8 9,10,11,12 輸出 1,2,3,4,8,...