Advent of Code Day 11 六邊形迷宮

解題語言不限Java

拖更了,不好意思

題目內(nèi)容

Crossing the bridge, you've barely reached the other side of the stream when a program comes up to you, clearly in distress. "It's my child process," she says, "he's gotten lost in an infinite grid!"
當(dāng)你快跨過橋的時候,你看見一個沮喪的程序走過來。“這是我孩子的路徑”,她說,“他在這個無窮大的網(wǎng)格里迷路了”。
Fortunately for her, you have plenty of experience with infinite grids.
對她來說幸運的是,你對無窮網(wǎng)格很有經(jīng)驗。
Unfortunately for you, it's a hex grid.The hexagons ("hexes") in this grid are aligned such that adjacent hexes can be found to the north, northeast, southeast, south, southwest, and northwest:
對你來說不幸的是,這是個六邊形網(wǎng)格(譯者注:我把鏈接的網(wǎng)址換成百度了,方便各位沒有梯子的同志們)。六邊形在網(wǎng)格里對齊,并且可以向北,西北,西南,東北,東南移動。

  \ n  /
nw +--+ ne
  /    \
-+      +-
  \    /
sw +--+ se
  / s  \

You have the path the child process took. Starting where he started, you need to determine the fewest number of steps required to reach him. (A "step" means to move from the hex you are in to any adjacent hex.)
你有她孩子走過的路徑,從當(dāng)前位置開始,你需要去判斷到達(dá)他所在位置的最短路徑。
For example:

  • ne,ne,ne is 3 steps away.
    最短路徑為3。
  • ne,ne,sw,sw is 0 steps away (back where you started).
    最短路徑為0,因為轉(zhuǎn)了一圈回來了。
  • ne,ne,s,s is 2steps away (se,se).
    最短路徑為2(se,se)。
  • se,sw,se,sw,sw is 3 steps away (s,s,sw).
    最短路徑為3(s,s,sw)。

解題思路

這個題目是要求在原點到目標(biāo)點的曼哈頓距離。不知道曼哈頓距離的朋友可以去看看曼哈頓距離。
難點在于和直角坐標(biāo)系相比,移動向量多了一,并且有移動向量之間是可以互相轉(zhuǎn)換的。
比如說:
我用移動向量(x,y,z)來表示六邊形網(wǎng)格中的位置。

  • x是向北移動的距離
  • y是向西北移動的距離
  • z是向東北移動的距離

那位置(-1,1,1)和位置(0,0,0)是一樣的
但是在直角坐標(biāo)系中(x,y)的組合是不會出現(xiàn)這樣的問題。因為在二維平面。垂直的兩個向量是不會互相影響的。
我在犯了這個錯誤之后借鑒了一下這個網(wǎng)站,這里面很詳細(xì)的講了各種方法來解這個問題。我會在整個活動結(jié)束之后出一個學(xué)習(xí)筆記來解析這個題目。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Java開發(fā)的準(zhǔn)備工作 在進行JDK的安裝之前,一定要先把電腦的防火墻關(guān)掉。 選擇正確的安裝版本,如果電腦是64位...
    大魚魚閱讀 222評論 1 0
  • 大學(xué)里堅持做自己喜歡的事情,積跬步終致千里、縱不如所愿、仍有盡吾志也而不能至者·可以無悔矣.
    油管視頻閱讀 189評論 0 0
  • 深夜 正值動筆的時機 其實剛才的午夜尋覓像是坐了時光機器 在別人的空間里看見了向往成為的自己 不懂的就不要亂說 明...
    清燁閱讀 295評論 2 2
  • ? 流星劃過,不過光年之前,時間弄人,羈絆不再。 這是讀完最平靜的一次,沒有刻意凸顯人性的惡或善,沒有讓人限于感情...
    李一沒有博先森6閱讀 775評論 0 4
  • 今天使用anaconda中spyder爬蟲突然出錯,代碼在別人電腦上正常運行,但是一到自己電腦上就出問題,排查好久...
    芒果不小心黃了閱讀 2,084評論 0 0

友情鏈接更多精彩內(nèi)容