一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

螺旋遍歷二維數(shù)組漫畫講解

算法與數(shù)據(jù)結(jié)構(gòu) ? 來(lái)源:程序員小灰 ? 作者:程序員小灰 ? 2020-11-26 14:01 ? 次閱讀

來(lái)自公眾號(hào):程序員小灰

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

什么意思呢?我們來(lái)舉個(gè)例子,給定下面這樣一個(gè)二維數(shù)組:

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

經(jīng)過(guò)這樣的遍歷,返回的元素結(jié)果如下:

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

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

第1層

從左到右遍歷“上邊”:

從上到下遍歷“右邊”:

從右到左遍歷“下邊”:

從下到上遍歷“左邊”:

第2層

從左到右遍歷“上邊”:

從上到下遍歷“右邊”:

從右到左遍歷“下邊”:

從下到上遍歷“左邊”:

第3層

從左到右遍歷“上邊”:

從上到下遍歷“右邊”:

從右到左遍歷“下邊”:

第三層的“左邊”已無(wú)需遍歷,二維數(shù)組到此遍歷完畢。

publicclassSpiralOrder{ publicstaticListspiralOrder(int[][]matrix){ Listlist=newArrayList(); //當(dāng)二維數(shù)組是空或任何一個(gè)維度是0,直接返回 if(matrix==null||matrix.length==0||matrix[0].length==0){ returnlist; } //m是矩陣的行數(shù) intm=matrix.length; //n是矩陣的列數(shù) intn=matrix[0].length; //二維數(shù)組的層數(shù),取決于行和列的較小值 intsize=(Math.min(m,n)+1)/2; //大循環(huán),從外向內(nèi)逐層遍歷矩陣 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())); } }

在上面的代碼中,一個(gè)大循環(huán)當(dāng)中包含了4個(gè)小循環(huán)。大循環(huán)控制了每一層的遍歷,4個(gè)小循環(huán)分別實(shí)現(xiàn)了同一層上邊、右邊、下邊,左邊的遍歷。

當(dāng)遍歷到最內(nèi)層時(shí),4個(gè)小循環(huán)并不會(huì)全都執(zhí)行,比如測(cè)試代碼中matrix2的最內(nèi)層就只有一列,此時(shí)只需要遍歷“上邊”和“右邊”。

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

(m-1)-i>i

i<(n-1)-i

使得同一條邊不會(huì)被重復(fù)遍歷到。

責(zé)任編輯:PSY

原文標(biāo)題:漫畫:如何螺旋遍歷二維數(shù)組?

文章出處:【微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 螺旋
    +關(guān)注

    關(guān)注

    0

    文章

    32

    瀏覽量

    17498
  • 二維
    +關(guān)注

    關(guān)注

    0

    文章

    41

    瀏覽量

    12097
  • 遍歷技
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    6609

原文標(biāo)題:漫畫:如何螺旋遍歷二維數(shù)組?

文章出處:【微信號(hào):TheAlgorithm,微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    二維碼讀取器是干嘛的

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

    請(qǐng)問(wèn)LabView中如何直接發(fā)送二維數(shù)組到DMD上顯示?

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

    二維影像掃描引擎可以應(yīng)用于哪些行業(yè)?

    二維影像掃描引擎,作為自動(dòng)識(shí)別技術(shù)的重要組成部分,以其高效、精準(zhǔn)的掃描能力,在多個(gè)行業(yè)領(lǐng)域內(nèi)展現(xiàn)出廣泛的應(yīng)用前景。這些引擎不僅提升了數(shù)據(jù)采集的效率和準(zhǔn)確性,還推動(dòng)了各行業(yè)的數(shù)字化轉(zhuǎn)型進(jìn)程。零售業(yè):在
    的頭像 發(fā)表于 02-14 14:59 ?340次閱讀
    <b class='flag-5'>二維</b>影像掃描引擎可以應(yīng)用于哪些行業(yè)?

    二維周期光柵結(jié)構(gòu)(菱形)光波導(dǎo)的應(yīng)用

    建模,包括所有效應(yīng)(例如相干、偏振和衍射)。我們通過(guò)對(duì)專利WO2018/178626中提到的設(shè)備進(jìn)行建模來(lái)證明這一能力,該設(shè)備由復(fù)雜的一二維菱形光柵結(jié)構(gòu)組成。 建模任務(wù):專利WO2018
    發(fā)表于 01-23 10:37

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

    在現(xiàn)代科技快速發(fā)展的今天,二維碼掃描已經(jīng)成為我們?nèi)粘I詈凸ぷ髦胁豢苫蛉钡囊徊糠?,無(wú)論是支付、物流追蹤還是信息獲取,都離不開二維碼的掃描。那么,二維掃描頭的有效掃描距離究竟是多少?又有哪些因素會(huì)
    的頭像 發(fā)表于 01-15 16:26 ?769次閱讀
    <b class='flag-5'>二維</b>掃碼頭有效掃描距離是多少,影響<b class='flag-5'>二維</b>掃描頭掃碼的因素有哪些

    RS232接口的二維影像掃描引擎,廣泛用在醫(yī)療設(shè)備上掃一二維

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

    指針數(shù)組二維數(shù)組有沒有區(qū)別

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

    二維碼識(shí)讀設(shè)備有哪些類型

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

    labview按行讀取二維數(shù)組之后再按讀取順序重新組成二維數(shù)組如何實(shí)現(xiàn)?

    labview用了index Array按索引一行行讀取二維數(shù)組之后想再按讀取順序重新組成一個(gè)二維數(shù)組如何實(shí)現(xiàn),即第一次讀取的作為第一行,第
    發(fā)表于 10-25 21:06

    請(qǐng)問(wèn)labview是否無(wú)法向matlab傳遞3數(shù)組

    經(jīng)過(guò)一些測(cè)試,發(fā)現(xiàn)在matlab script中只能傳二維數(shù)組,利用打包.net庫(kù),好像還是只能傳遞二維數(shù)組。 是不是從底層就不支持,這兩種語(yǔ)言的三
    發(fā)表于 10-22 20:14

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

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

    Labview生成二維

    ?Labview 的一個(gè)Demo,生成二維碼。
    發(fā)表于 08-01 17:12 ?14次下載

    技術(shù)|二維PDOA平面定位方案

    一、方案概述二維平面定位系統(tǒng),采用UWB定位技術(shù),精度可到30cm。通過(guò)PDOA算法,可實(shí)現(xiàn)單基站二維平面的實(shí)時(shí)人員定位,增強(qiáng)對(duì)危險(xiǎn)區(qū)域的管控,有效預(yù)防安全事故發(fā)生。面對(duì)突發(fā)情況,能做到及時(shí)報(bào)警響應(yīng)
    的頭像 發(fā)表于 06-04 14:53 ?1429次閱讀
    技術(shù)|<b class='flag-5'>二維</b>PDOA平面定位方案

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

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

    數(shù)組的轉(zhuǎn)換到二維數(shù)組后的行列增減問(wèn)題

    請(qǐng)大佬指點(diǎn),如VI,兩個(gè)求助點(diǎn): 1、一數(shù)組大小,在停止Vi前把數(shù)組大小增加到4,在循環(huán)外設(shè)置了一數(shù)組的行數(shù)為0了,為啥再次運(yùn)行VI后,
    發(fā)表于 05-11 00:25