leetcode 21 旋轉矩陣

2022-06-13 03:39:07 字數 835 閱讀 6186

給定乙個 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...