LeetCode第四十八題 Python實現

2021-10-21 11:36:53 字數 1612 閱讀 4680

title: leetcode no.48

categories:

tags:

給定乙個 n × n 的二維矩陣 matrix 表示乙個影象。請你將影象順時針旋轉 90 度。

你必須在 原地 旋轉影象,這意味著你需要直接修改輸入的二維矩陣。請不要 使用另乙個矩陣來旋轉影象。

示例 1:

輸入:matrix = [[1,2,3],[4,5,6],[7,8,9]]

輸出:[[7,4,1],[8,5,2],[9,6,3]]

示例 2:

輸入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]

輸出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]

示例 3:

輸入:matrix = [[1]]

輸出:[[1]]

示例 4:

輸入:matrix = [[1,2],[3,4]]

輸出:[[3,1],[4,2]]

class solution(object):

def rotate(self, matrix):

""":type matrix: list[list[int]]

:rtype: none do not return anything, modify matrix in-place instead.

核心思想:

分析示例可以看出,我們如果先進性矩陣的轉置,則可以得到目標結果的中心對稱矩陣,然後在對該矩陣進行映象

即可以得到目標矩陣

"""n = len(matrix)

# 先進行轉置 行變列、列變黃

for i in range(n):

for j in range(n):

# 僅進行對角交換即可

if j > i:

t = matrix[i][j]

matrix[i][j] = matrix[j][i]

matrix[j][i] = t

# 再進行映象 中心軸對稱變換

center_axis = int(n/2) # 中心軸對應的下標

for i in range(n):

for j in range(n):

if j < center_axis:

t = matrix[i][j]

matrix[i][j] = matrix[i][n-j-1]

matrix[i][n - j - 1] = t

if __name__ == '__main__':

s = solution()

s.rotate(matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]])

第四十八象 辛亥

讖 曰卯午之開 厥象維離 八牛牽動 雍雍熙熙 頌 曰水火既濟人民吉 手執金戈不殺賊 五十年中一將臣 青青草自田間出 金聖嘆註解 此象疑一朱姓與一苗姓爭朝綱,而朱姓有以德服人之化,龍蛇相鬥,想在辰巳之年,其建都或在南方。推背圖網解 此象是數十年之後的事,有人就那幅龍蛇鬥的圖對老夫放肆,古爾略作解釋。無...

第四十八章 三大客卿

天神那溫和的聲音在大殿中迴盪。可是八位神將都是乙個個驚愕的看向天神。根本不敢相信天神竟然會說出這樣的話。第九神將?滕青山也有些驚的看向天神。神那一雙小眼睛好似黑色晶玉。讓人根本猜不透他到底是怎麼想的。天神見滕青山疑。便接著道 呼和。你無門無派。入我天神山。對你有好處沒處。旁邊李此刻也露一絲笑容。她是...

第四十八課 同名覆蓋引發的問題

一 子類物件可以當做父類物件使用 相容性 1 子類物件可以直接賦值給父類物件 2 子類物件可以直接初始化父類物件 3 父類指標可以直接指向子類物件 4 父類引用可以直接引用子類物件 5 當父類指標 引用 指向子類物件時 1 子類物件退化為父類物件 2 只能訪問父類中定義的成員 3 可以直接訪問被子類...