精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

螺旋遍歷二維數組漫畫講解

算法與數據結構 ? 來源:程序員小灰 ? 作者:程序員小灰 ? 2020-11-26 14:01 ? 次閱讀

來自公眾號:程序員小灰

————— 第二天 —————

什么意思呢?我們來舉個例子,給定下面這樣一個二維數組:

我們需要從左上角的元素1開始,按照順時針進行螺旋遍歷,一直遍歷完所有的元素,遍歷的路徑就像下圖一樣:

經過這樣的遍歷,返回的元素結果如下:

1,2,3,4,5,10,15,20,19,18,17,16,11,6,7,8,9,14,13,12

————————————

第1層

從左到右遍歷“上邊”:

從上到下遍歷“右邊”:

從右到左遍歷“下邊”:

從下到上遍歷“左邊”:

第2層

從左到右遍歷“上邊”:

從上到下遍歷“右邊”:

從右到左遍歷“下邊”:

從下到上遍歷“左邊”:

第3層

從左到右遍歷“上邊”:

從上到下遍歷“右邊”:

從右到左遍歷“下邊”:

第三層的“左邊”已無需遍歷,二維數組到此遍歷完畢。

publicclassSpiralOrder{ publicstaticListspiralOrder(int[][]matrix){ Listlist=newArrayList(); //當二維數組是空或任何一個維度是0,直接返回 if(matrix==null||matrix.length==0||matrix[0].length==0){ returnlist; } //m是矩陣的行數 intm=matrix.length; //n是矩陣的列數 intn=matrix[0].length; //二維數組的層數,取決于行和列的較小值 intsize=(Math.min(m,n)+1)/2; //大循環,從外向內逐層遍歷矩陣 for(inti=0;ii;j++){ list.add(matrix[(m-1)-i][(n-1)-j]); } //從下到上遍歷“左邊” for(intj=i+1;jresultList1=spiralOrder(matrix); System.out.println(Arrays.toString(resultList1.toArray())); ListresultList2=spiralOrder(matrix2); System.out.println(Arrays.toString(resultList2.toArray())); } }

在上面的代碼中,一個大循環當中包含了4個小循環。大循環控制了每一層的遍歷,4個小循環分別實現了同一層上邊、右邊、下邊,左邊的遍歷。

當遍歷到最內層時,4個小循環并不會全都執行,比如測試代碼中matrix2的最內層就只有一列,此時只需要遍歷“上邊”和“右邊”。

這種情況下,遍歷“下邊”和“左邊”的小循環必須加上了額外的條件限制:

(m-1)-i>i

i<(n-1)-i

使得同一條邊不會被重復遍歷到。

責任編輯:PSY

原文標題:漫畫:如何螺旋遍歷二維數組?

文章出處:【微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 螺旋
    +關注

    關注

    0

    文章

    32

    瀏覽量

    17396
  • 二維
    +關注

    關注

    0

    文章

    40

    瀏覽量

    11978
  • 遍歷技
    +關注

    關注

    0

    文章

    2

    瀏覽量

    6565

原文標題:漫畫:如何螺旋遍歷二維數組?

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    指針數組二維數組有沒有區別

    指針數組二維數組有沒有區別?比如這樣的兩個代碼。 int main(){ char *s1[] = { "hello", "world", "total" }; char s2[][6
    的頭像 發表于 11-24 11:12 ?69次閱讀

    二維碼識讀設備有哪些類型

    隨著二維碼應用的日益普及,各類二維碼識讀設備也應運而生。這些設備不僅極大地方便了我們的日常生活,也為企業提供了更加高效便捷的服務。那么,你知道二維碼識讀設備都有哪些類型嗎?讓我們一起來了解一下。據
    的頭像 發表于 11-05 16:10 ?101次閱讀
    <b class='flag-5'>二維</b>碼識讀設備有哪些類型

    labview按行讀取二維數組之后再按讀取順序重新組成二維數組如何實現?

    labview用了index Array按索引一行行讀取二維數組之后想再按讀取順序重新組成一個二維數組如何實現,即第一次讀取的作為第一行,第
    發表于 10-25 21:06

    請問labview是否無法向matlab傳遞3數組

    經過一些測試,發現在matlab script中只能傳二維數組,利用打包.net庫,好像還是只能傳遞二維數組。 是不是從底層就不支持,這兩種語言的三
    發表于 10-22 20:14

    二維力傳感器怎么安裝,在安裝二維力傳感器的安裝步驟

    二維力傳感器是一種精密的測量設備,用于檢測物體在平面內的力和力矩。為了確保其測量結果的準確性和穩定性,正確的安裝步驟至關重要。本文將詳細介紹二維力傳感器的安裝方法。
    的頭像 發表于 09-27 17:14 ?275次閱讀
    <b class='flag-5'>二維</b>力傳感器怎么安裝,在安裝<b class='flag-5'>二維</b>力傳感器的安裝步驟

    Labview生成二維

    ?Labview 的一個Demo,生成二維碼。
    發表于 08-01 17:12 ?6次下載

    技術|二維PDOA平面定位方案

    一、方案概述二維平面定位系統,采用UWB定位技術,精度可到30cm。通過PDOA算法,可實現單基站二維平面的實時人員定位,增強對危險區域的管控,有效預防安全事故發生。面對突發情況,能做到及時報警響應
    的頭像 發表于 06-04 14:53 ?841次閱讀
    技術|<b class='flag-5'>二維</b>PDOA平面定位方案

    二維PDMA可以使用描述符鏈嗎?

    我正在嘗試使用二維描述符連鎖。 編寫了一些二維描述符鏈的代碼。 但我有一些疑問,比如 1.二維 PDMA 可以使用描述符鏈嗎? 2.如果 1 是,請附上一些代碼 我們是否可以使用 2 個結構或只使用 1 個結構即可。
    發表于 05-31 08:16

    數組的轉換到二維數組后的行列增減問題

    請大佬指點,如VI,兩個求助點: 1、一數組大小,在停止Vi前把數組大小增加到4,在循環外設置了一數組的行數為0了,為啥再次運行VI后,
    發表于 05-11 00:25

    怎么在Framewin里顯示二維碼?

    各位前輩好,剛剛開始使用STemWin。現在一個Framewin里顯示二維碼,在Framewin初始化里調用二維碼函數沒有反應。請問需要怎么調用?
    發表于 04-16 08:27

    手持機二維掃描模組,輕松讀取各類條碼、二維碼,長距離掃描

    手持機作為零售、物流、倉儲等行業的主要信息采集設備,廣泛應用于物資儲存、倉儲管理、配送運輸等多個環節,而這些環節都離不開手持機二維掃描模組,即必須配置有專業的條碼掃描頭來完成條碼高效快速識別與采集
    的頭像 發表于 04-03 14:14 ?384次閱讀
    手持機<b class='flag-5'>二維</b>掃描模組,輕松讀取各類條碼、<b class='flag-5'>二維</b>碼,長距離掃描

    遠距離二維碼掃描器如何選擇?看看以下三款遠距離二維碼掃碼模塊

    隨著二維碼相關技術及硬件的普及與低成本化,二維條碼掃描設備的應用被人們廣為熟知,應用的行業也眾多。然而,在某些場景中,由于需要遠距離掃描二維碼(條碼遠距離識別),傳統的掃碼設備已經無法滿足需求
    的頭像 發表于 03-21 15:41 ?658次閱讀
    遠距離<b class='flag-5'>二維</b>碼掃描器如何選擇?看看以下三款遠距離<b class='flag-5'>二維</b>碼掃碼模塊

    Labview調用Halcon識別二維

    Labview調用Halcon識別二維碼 可一次識別多個二維碼 使用Labview 2020編輯,halcon的版本是 19.11,32位
    發表于 02-21 16:31

    二維/三的多軸PSO視覺飛拍與精準輸出:EtherCAT超高速實時運動控制卡XPCIE1032H上位機C#開發(八)

    本文主要講解多軸PSO二維、三比較輸出兩種模式。
    的頭像 發表于 01-08 09:34 ?461次閱讀
    <b class='flag-5'>二維</b>/三<b class='flag-5'>維</b>的多軸PSO視覺飛拍與精準輸出:EtherCAT超高速實時運動控制卡XPCIE1032H上位機C#開發(八)

    二維材料增強光纖

    ? 二維材料可用于涂覆光纖以增強非線性相互作用,為構建未來非線性和超快激光系統開辟新途徑。NIR 和 SWIR 光譜測量并量化輸出特性和光學行為。石墨烯和過渡金屬硫屬化物 (TMD)等原子薄二維
    的頭像 發表于 12-01 06:34 ?349次閱讀