2017年2月21日 星期二

[C_AR40-易] 螺旋矩陣

http://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=3019

這題螺旋矩陣最直覺方法就是模擬,那如何做呢?首先不管順(逆)時鐘都有個規律,建議各位還是在紙上寫下每個位置的索引值如下:

[0,0] [0,1] [0,2] [0,3]
[1,0] [1,1] [1,2] [1,3]
[2,0] [2,1] [2,2] [2,3]
[3,0] [3,1] [3,2] [3,3]

看到這可能還是很模糊,我們在看下面這張圖搭配索引值發現他其實是有規律的,以順時鐘來說我們依序由上排佐至右,接下來又半部由上而下,然後下半部由右至左,最後左邊由下而上內層一樣按照此規律
那在這各位可能會問我們怎知道有幾層呢?把它當作洋蔥n=4時他有4/2=2層(迴圈跑兩次的意思,觀察索引值),那當遇到偶數時該怎麼辦呢?n=5,時就有5/2=2層,你可以發現他其實還有一層但他只有一個數字,可以把它當作成是圓的中心點個別處理arr[n / 2][n / 2] = count;




沒有留言:

張貼留言