中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

LeetCode二維數組中如何實現對角線遍歷

發布時間:2021-12-15 11:35:38 來源:億速云 閱讀:330 作者:小新 欄目:大數據

這篇文章主要介紹LeetCode二維數組中如何實現對角線遍歷,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!


題目描述:“給定一個含有M*N個元素的矩陣,請以對角線遍歷的順序返回矩陣中的元素”

(矩陣中元素<=10000)


示例:

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


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

LeetCode二維數組中如何實現對角線遍歷


 

算法思路

尋找元素遍歷的規律

LeetCode二維數組中如何實現對角線遍歷

按照對角線將元素劃分,你會發現一些規律:

  • 將每一個對角線上的元素各自看成一組,對角線數組的個數如下:
    (len(matrix)+len(matrix[0])-1)  
  • 如果將對角線數組從左向右數,你會發現 第偶數個對角線數組 在讀取時應該 逆序 讀取
  • 最終要的規律:在同一個對角線數組中的元素下標之后相等

LeetCode二維數組中如何實現對角線遍歷

算法步驟:

  1.  先按照矩陣遍歷的正常順序遍歷元素,過程中計算元素 下標和
  2. 將下標和一樣的元素存入對應的對角線數組中(設置一個 二維數組 存儲對角線數組)
    同時要注意: 二維數組中每一個一維數組的對應下標其實正好就等于之前計算的元素下標記和  
  3. 遍歷完成后,將對角線二維數組中的一維數組再添加到函數最后要返回的數組中。其中要進行判斷: 偶數個數組要逆序讀取

LeetCode二維數組中如何實現對角線遍歷

LeetCode二維數組中如何實現對角線遍歷


本文由“壹伴編輯器”提供技術支持

注意:

  • 一定要判斷輸入為 的情況
  • 輸入可沒說一定是方陣,所以在自己舉例推導時不要取特殊情況
  • 既然所有元素最終都要返回,那就先把每個都考慮進單個數組,最后再排序


本文由“壹伴編輯器”提供技術支持

 

二維數組的創建問題

創建二維數組的坑LeetCode二維數組中如何實現對角線遍歷LeetCode二維數組中如何實現對角線遍歷LeetCode二維數組中如何實現對角線遍歷LeetCode二維數組中如何實現對角線遍歷LeetCode二維數組中如何實現對角線遍歷LeetCode二維數組中如何實現對角線遍歷LeetCode二維數組中如何實現對角線遍歷LeetCode二維數組中如何實現對角線遍歷LeetCode二維數組中如何實現對角線遍歷LeetCode二維數組中如何實現對角線遍歷

本文題目在之前的算法中一直這樣創建二維數組:

diagonal_list = [[]*(len(matrix)+len(matrix[0]-1)]

但是一直報錯

LeetCode二維數組中如何實現對角線遍歷

原來二維數組的創建有坑!!!!!!!!

a = [ []*3 ]a[0].append(1)
>>> a=[ [1], [1], [1] ]

都變成1了,可明明僅設置了第一個數組呀?????

原來:在創建一個如果利用乘法創建二維數組的話,或者不是二維數組,僅僅是一維數組乘以n,乘法代表的是引用,后面不論多少個數組都是引用第一個數組LeetCode二維數組中如何實現對角線遍歷LeetCode二維數組中如何實現對角線遍歷LeetCode二維數組中如何實現對角線遍歷

正確的創建方法:利用for循環

a = [] for i in range(n)

以上是“LeetCode二維數組中如何實現對角線遍歷”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巢湖市| 景德镇市| 修武县| 屏东市| 盱眙县| 姜堰市| 中江县| 南康市| 读书| 类乌齐县| 湖口县| 大新县| 鄂托克旗| 莱阳市| 漾濞| 吉林省| 巴塘县| 垣曲县| 无棣县| 比如县| 阜平县| 鹰潭市| 和平县| 佛坪县| 铜川市| 同心县| 甘德县| 清镇市| 商城县| 利辛县| 车致| 林芝县| 岱山县| 永定县| 南木林县| 达孜县| 鸡泽县| 正安县| 清流县| 扎囊县| 平遥县|