Advent of Code Day 11 六边形迷宫

解题语言不限Java

拖更了,不好意思

题目内容

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!"
当你快跨过桥的时候,你看见一个沮丧的程序走过来。“这是我孩子的路径”,她说,“他在这个无穷大的网格里迷路了”。
Fortunately for her, you have plenty of experience with infinite grids.
对她来说幸运的是,你对无穷网格很有经验。
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:
对你来说不幸的是,这是个六边形网格(译者注:我把链接的网址换成百度了,方便各位没有梯子的同志们)。六边形在网格里对齐,并且可以向北,西北,西南,东北,东南移动。

  \ 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.)
你有她孩子走过的路径,从当前位置开始,你需要去判断到达他所在位置的最短路径。
For example:

  • ne,ne,ne is 3 steps away.
    最短路径为3。
  • ne,ne,sw,sw is 0 steps away (back where you started).
    最短路径为0,因为转了一圈回来了。
  • 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)。

解题思路

这个题目是要求在原点到目标点的曼哈顿距离。不知道曼哈顿距离的朋友可以去看看曼哈顿距离
难点在于和直角坐标系相比,移动向量多了一,并且有移动向量之间是可以互相转换的。
比如说:
我用移动向量(x,y,z)来表示六边形网格中的位置。

  • x是向北移动的距离
  • y是向西北移动的距离
  • z是向东北移动的距离

那位置(-1,1,1)和位置(0,0,0)是一样的
但是在直角坐标系中(x,y)的组合是不会出现这样的问题。因为在二维平面。垂直的两个向量是不会互相影响的。
我在犯了这个错误之后借鉴了一下这个网站,这里面很详细的讲了各种方法来解这个问题。我会在整个活动结束之后出一个学习笔记来解析这个题目。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容

  • Java开发的准备工作 在进行JDK的安装之前,一定要先把电脑的防火墙关掉。 选择正确的安装版本,如果电脑是64位...
    大鱼鱼阅读 183评论 1 0
  • 大学里坚持做自己喜欢的事情,积跬步终致千里、纵不如所愿、仍有尽吾志也而不能至者·可以无悔矣.
    油管视频阅读 167评论 0 0
  • 深夜 正值动笔的时机 其实刚才的午夜寻觅像是坐了时光机器 在别人的空间里看见了向往成为的自己 不懂的就不要乱说 明...
    清烨阅读 245评论 2 2
  • ​ 流星划过,不过光年之前,时间弄人,羁绊不再。 这是读完最平静的一次,没有刻意凸显人性的恶或善,没有让人限于感情...
    李一没有博先森6阅读 652评论 0 4
  • 今天使用anaconda中spyder爬虫突然出错,代码在别人电脑上正常运行,但是一到自己电脑上就出问题,排查好久...
    芒果不小心黄了阅读 1,930评论 0 0