python旋轉 Python實現旋轉矩陣

2021-10-11 10:17:04 字數 1168 閱讀 6413

要求:給乙個n×n的陣列,旋轉90度。

手動畫個醜圖:

image.png

簡單思路(順時針):

如圖四個紅框為乙個layer,每次旋轉乙個layer,layer的範圍是(0,len(nums)/2)

在第乙個layer迴圈中,要將四角的元素按一下順序旋轉(0,0)轉到(0,3)轉到(3,3)轉到(3,0)轉到(0,0)

如果直接按照這個順序,前乙個值會將後乙個值直接覆蓋掉,所以先用乙個臨時的tmp將首個元素存起來,然後按照

(3,0)轉到(0,0)

(3,3)轉到(3,0)

(0,3)轉到(3,3)

(0,0)轉到(0,3)

tmp轉到(0,0)

這樣的順序旋轉。

first是每個紅框中的第乙個元素,last為最後乙個。

offset記錄了當前旋轉到了紅框中的第幾個元素。

完整**:

def rotate(matrix):

n = len(matrix)

for laryer in range(0, n / 2):

first = laryer

last = n - 1 - laryer

for i in range(first, last):

offset = i - first

tmp = matrix[first][i]

# 左側一列移到頂部

matrix[first][i] = matrix[last - offset][first]

# 底部一行移到左側

matrix[last - offset][first] = matrix[last][last - offset]

# 右側一列移到底部

matrix[last][last - offset] = matrix[i][last]

# 頂部一行移到右側

matrix[i][last] = tmp

return matrix

矩陣(測試用例):

matrix = [[0, 1, 2, 3, 4],

[5, 6, 7, 8, 9],

[10, 11, 12, 13, 14],

[15, 16, 17, 18, 19],

[20, 21, 22, 23, 24]]

輸出:image.png

矩陣旋轉Python

主要實現兩種方式 1,2,3 0,0 0,1 0,2 0,3 0,4 0,5 length 6 max xy 5 4,5,6 1,0 1,1 1,2 1,3 1,4 1,5 7,8,9 2,0 2,1 2,2 2,3 2,4 2,5 3,0 3,1 3,2 3,3 3,4 3,5 4,0 4,1 4...

劍指offer 陣列的旋轉(1)Python實現

題目 把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。考點 二分查詢 鏈結 一 鏈結二。分析 旋轉之後的陣列實際上可以劃分...

python實訓成果 python實訓第一天

實訓第一天總結 常量 常量也是變數,在python中大家都規定只要是大寫的變數都稱之為常量 使用者與程式互動 數字型別 整型int 浮點型 float 字串型別 列表型別 字典型別 在 內,都逗號隔開,可存放多個值,每個值以key value的形式儲存 存 dict1 取 print dict1 n...