遍历矩阵每一行穷举_LeetCode:二维数组—旋转矩阵
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                遍历矩阵每一行穷举_LeetCode:二维数组—旋转矩阵
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                點擊上方藍字關注我們
題目描述:“給衣服N*N的矩陣表示圖像,其中每個像素的大小為4字節,設計一個算法,圖像旋轉90度”
示例:
matrix=[[1, 2, 3],[4, 5, 6],[7,?8,?9]]round_matrix=[[7, 4, 1],[8, 5, 2],[9, 6, 3]]第一次嘗試
觀察數組旋轉的規律,可以創建一個新的二維數組,利用循環將數據元素按照旋轉規律輸入到新建二維數組中
注意:range(start, stop, -1)從大到小遍歷的時候,也只是取到 stop+1 的下標位置
雖然該方法解決了問題,但是占據了額外的內存(創建了新的二維數組)
本文由“壹伴編輯器”提供技術支持
算法優化——不占據額外內存
不占據內存則不能創建新的變量,而是在原數組上變動
矩陣的旋轉有特別規律:
首先將矩陣的對角線元素交換
對每一行(一維數組)逆序排列
注意:
- python變量交換語法: 
- 兩層循環遍歷的時候,注意第二層循環不是從0開始,不然每一種情況就會出現重復,最終回到原點。而是從上一個循環的 i 開始遍歷。在對角線交換元素中最后一次交換,就是右下角的元素與自己交換,只有一次交換。如果從0開始,那每一個i都有三個交換 
總結
以上是生活随笔為你收集整理的遍历矩阵每一行穷举_LeetCode:二维数组—旋转矩阵的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: vue dplayer 加载失败_最新v
- 下一篇: p沟道mos管导通条件_通俗易懂:MOS
