💖作者簡介:大家好,我是車神哥,府學路18號的車神🥇
📝個人主頁:應無所住而生其心的博客_府學路18號車神_CSDN博客
🎉點贊?評論?收藏 == 養成習慣(一鍵三連)😋
📖本系列主要以刷LeetCode(力扣)網站的各類題為標準,實作自我能力的提升為目標?
?希望大家多多支持🤗~一起加油 😁
- 專欄《LeetCode天梯》
11.1,xdm,是不是經歷了昨晚的瘋狂且報復性消費啊,說實話,套路真的太多太多了,預售最后還比現搶貴一些,就很離譜!!!離譜他媽給離譜開門,真是離譜到家了,哎!奈何囊中羞澀!還是學好技術香啊,脫離雙十一的苦海!!!疫情依舊反復,大家帶好口罩啊~ 繼續繼續,來,今天和車神哥一起來提升自己的Python編程和面試能力吧,刷天梯~
以下為我的天梯積分規則:
每日至少一題:一題積分+10分
若多做了一題(或多一種方法解答),則當榷訓分+20分(+10+10)
若做了三道以上,則從第三題開始算+20分(如:做了三道題則積分-10+10+20=40;做了四道題則積分–10+10+20+20=60)
初始分為100分
若差一天沒做題,則扣積分-10分(周六、周日除外注:休息)
堅持!!!
初級演算法
刷題目錄
陣列

題干
給定一個 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]]
上下交換+對角線交換
分析:
今天的題難度在中上,我們有matrix矩陣,需要讓整個資料矩陣按照順時針進行轉動,操作矩陣,當矩陣的維數為奇數時,最中間的數不需要變動,為偶數時,則所有的數都需要進行旋轉,
首先,我們需要判斷矩陣的維度為奇數還是偶數,做兩種旋轉型別,
我們拿第一個矩陣(奇數方陣)進行分析

當為3*3的矩陣時,需要將除開中心的數字,依次移動2次(也就是n-1次),或許,我們還可以像下面一樣


可以按照每一行,然后依次填入,但是又好像違背了題意,不能使用額外的陣列來操作旋轉,
那我們再換一下,先上下交換,再對角線左右三角交換

參考一下大佬的圖片
class Solution:
def rotate(self, matrix: List[List[int]]) -> None:
"""
Do not return anything, modify matrix in-place instead.
"""
n = len(matrix)
p = n / 2 # 判斷交換次數
for i in range(int(p)):
# 先上下交換
# for j in range(n):
matrix[i], matrix[n-i-1] = matrix[n-i-1], matrix[i]
# i += 1
# n -= 1
# 上下交換完畢
# 對角線項交換
for x in range(n):
for y in range(x+1):
matrix[x][y], matrix[y][x] = matrix[y][x], matrix[x][y]
效果還是不錯的



打包旋轉法
看到有些人用了Python的內置函式進行旋轉和打包,但是違背了本來的題意,開辟了額外的空間,不過方法還是可以的,很簡便,我們一起來試一試吧!

class Solution:
def rotate(self, matrix: List[List[int]]) -> None:
"""
Do not return anything, modify matrix in-place instead.
"""
x = 0
for idx in zip(*matrix[::-1]):
matrix[x] = idx
x += 1
return matrix
速度也是很快,但很明顯,記憶體消耗比上面的大了,說明開辟了新的記憶體空間,所以屬于違規了,但是思路很不錯,值得學習借鑒,

如果還有什么好的方法,可以留言喲!~
😁完結撒花 ???
第一節陣列終于刷完了,等待下一節字串的更新,加油加油加油!!!~
References
作者:力扣 (LeetCode)
鏈接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnhhkv/
來源:力扣(LeetCode)
作者:資料結構和演算法
鏈接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnhhkv/?discussion=55PjY0
來源:力扣(LeetCode)
今日得分:+10+10
總得分:340加油!!!
?堅持讀Paper,堅持做筆記,堅持學習,堅持刷力扣LeetCode?!!!
堅持刷題!!!打天梯!!!
?To Be No.1??哈哈哈哈
?創作不易?,過路能?關注、收藏、點個贊?三連就最好不過了
?( ′・?・` )
?
『
宇宙是螞蟻的夢,
』
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/345755.html
標籤:python
上一篇:Python解決TypeError, ValueError, KeyError, Unicode Encode Error報錯
