來自公眾號:程序員小灰
————— 第二天 —————
什么意思呢?我們來舉個例子,給定下面這樣一個二維數組:
我們需要從左上角的元素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{ publicstaticList
在上面的代碼中,一個大循環當中包含了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
JCMsuite中對二維光柵的定義和仿真
二維碼讀取器是干嘛的

請問LabView中如何直接發送二維數組到DMD上顯示?
二維影像掃描引擎可以應用于哪些行業?

二維周期光柵結構(菱形)光波導的應用
二維掃碼頭有效掃描距離是多少,影響二維掃描頭掃碼的因素有哪些

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

指針數組和二維數組有沒有區別
二維碼識讀設備有哪些類型

labview按行讀取二維數組之后再按讀取順序重新組成二維數組如何實現?
請問labview是否無法向matlab傳遞3維數組
二維力傳感器怎么安裝,在安裝二維力傳感器的安裝步驟

評論