女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

    瀏覽量

    17536
  • 二維
    +關注

    關注

    0

    文章

    41

    瀏覽量

    12141
  • 遍歷技
    +關注

    關注

    0

    文章

    2

    瀏覽量

    6617

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于STM32的二維碼識別源碼+二維碼解碼庫lib

    基于STM32的二維碼識別源碼+二維碼解碼庫lib,推薦下載!
    發表于 05-28 22:04

    基于STM32的二維碼識別源碼+二維碼解碼庫lib

    基于STM32的二維碼識別源碼+二維碼解碼庫lib項目實例下載! 純分享帖,需要者可點擊附件免費獲取完整資料~~~【免責聲明】本文系網絡轉載,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請第一時間告知,刪除內容!
    發表于 05-23 20:45

    JCMsuite中對二維光柵的定義和仿真

    光柵是光衍射的周期性結構。它能把入射的光束衍射成幾束向不同方向發散的光束。 二維光柵 二維光柵在兩個水平方向上都具有周期性。存在兩個晶格矢量因此當幾何結構移位一個晶格矢量時, 下圖顯示了一個正方形
    發表于 05-19 08:53

    二維碼讀取器是干嘛的

    二維碼讀取器(用于二維碼讀取的機器),作為一種現代化的自動識別技術設備,正日益滲透到我們生活的方方面面。從商場購物到物流配送,從醫療管理到工業生產線,二維碼讀取器憑借其高效、準確的讀取能力,發揮
    的頭像 發表于 03-17 15:57 ?409次閱讀
    <b class='flag-5'>二維</b>碼讀取器是干嘛的

    請問LabView中如何直接發送二維數組到DMD上顯示?

    LabView中如何直接發送二維數組到DMD上顯示。 在LabView中,調用int LoadData(UCHAR*RowData,long length)遇到兩個問題,1 二維數組
    發表于 02-27 07:30

    二維影像掃描引擎可以應用于哪些行業?

    二維影像掃描引擎,作為自動識別技術的重要組成部分,以其高效、精準的掃描能力,在多個行業領域內展現出廣泛的應用前景。這些引擎不僅提升了數據采集的效率和準確性,還推動了各行業的數字化轉型進程。零售業:在
    的頭像 發表于 02-14 14:59 ?514次閱讀
    <b class='flag-5'>二維</b>影像掃描引擎可以應用于哪些行業?

    二維周期光柵結構(菱形)光波導的應用

    建模,包括所有效應(例如相干、偏振和衍射)。我們通過對專利WO2018/178626中提到的設備進行建模來證明這一能力,該設備由復雜的一二維菱形光柵結構組成。 建模任務:專利WO2018
    發表于 01-23 10:37

    二維掃碼頭有效掃描距離是多少,影響二維掃描頭掃碼的因素有哪些

    在現代科技快速發展的今天,二維碼掃描已經成為我們日常生活和工作中不可或缺的一部分,無論是支付、物流追蹤還是信息獲取,都離不開二維碼的掃描。那么,二維掃描頭的有效掃描距離究竟是多少?又有哪些因素會
    的頭像 發表于 01-15 16:26 ?1148次閱讀
    <b class='flag-5'>二維</b>掃碼頭有效掃描距離是多少,影響<b class='flag-5'>二維</b>掃描頭掃碼的因素有哪些

    RS232接口的二維影像掃描引擎,廣泛用在醫療設備上掃一二維

    在醫療設備領域,二維碼的應用日益廣泛,它作為信息的快速傳遞和識別手段,為醫療管理、患者追蹤、設備維護等環節帶來了極大的便利。而在這背后,RS232接口的二維影像掃描引擎扮演著至關重要的角色,它以
    的頭像 發表于 12-23 16:02 ?616次閱讀
    RS232接口的<b class='flag-5'>二維</b>影像掃描引擎,廣泛用在醫療設備上掃一<b class='flag-5'>維</b><b class='flag-5'>二維</b>碼

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

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

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

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

    Labview生成二維

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