給定乙個 n × n 的二維矩陣表示乙個影象。
將影象順時針旋轉 90 度。
說明:你必須在原地旋轉影象,這意味著你需要直接修改輸入的二維矩陣。請不要使用另乙個矩陣來旋轉影象。
像剝洋蔥一樣,一圈一圈旋轉,每一圈,分為四個元素的置換。算出來四個座標就行
class solution:
def rotate(self, matrix) -> none:
"""do not return anything, modify matrix in-place instead.
"""length = len(matrix)
for i in range(length//2): # 有多少圈
nums = (length-i*2)-1
edge = length-i*2
for j in range(nums): # 一圈有多少個*4的交換
begin_x = i
begin_y = i+j
n_1 = (begin_x,begin_y)
n_2 = (i+j,i+edge-1)
n_3 = (begin_x+edge-1,n_2[1]-j)
n_4 = (n_3[0]-j,i)
matrix[n_1[0]][n_1[1]],matrix[n_2[0]][n_2[1]],matrix[n_3[0]][n_3[1]],matrix[n_4[0]][n_4[1]] = matrix[n_4[0]][n_4[1]],matrix[n_1[0]][n_1[1]],matrix[n_2[0]][n_2[1]],matrix[n_3[0]][n_3[1]]
leetCode48 旋轉矩陣
目錄 一 題目描述 二 解題思路 三 實現 給定乙個 n n 的二維矩陣表示乙個影象。將影象順時針旋轉 90 度。說明 你必須在原地旋轉影象,這意味著你需要直接修改輸入的二維矩陣。請不要使用另乙個矩陣來旋轉影象。示例 1 給定 matrix 1,2,3 4,5,6 7,8,9 原地旋轉輸入矩陣,使其...
推到 旋轉矩陣公式 旋轉矩陣公式推導
1.在二維平面中 如下圖所示,在xoyxoy平面中有一向量op x,y top x,y t,旋轉 角後變為向量op x y top x y t。據圖可得 x op cos y op sin x op cos y op sin 經旋轉 角後有 x op cos op cos cos sin sin x...
翻滾吧,leetcode之旋轉矩陣
給你一幅由 n n 矩陣表示的影象,其中每個畫素的大小為 4 位元組。請你設計一種演算法,將影象旋轉 90 度。不占用額外記憶體空間能否做到?示例 1 給定 matrix 1,2,3 4,5,6 7,8,9 原地旋轉輸入矩陣,使其變為 7,4,1 8,5,2 9,6,3 示例 2 給定 matrix...