最近产品线举办了一个软件编程大赛,题目非常的有趣,就是在一个9 × 9的格子里,你要和另一个敌人PK,在PK的过程中,你可以吃格子里的果实来提升攻击力。每次可以往正上、正下、正左、正右、左上、左下、右上、右下八个方向走。每次要么连续吃果实要么连续走空白区域,且不能走重复的位置。初始状态如下图所示:
![](http://o7x0ygc3f.bkt.clouddn.com/%E6%9C%80%E9%95%BF%E8%B7%AF%E5%BE%84%E9%97%AE%E9%A2%98-5.png)
为了提升攻击力,我们需要尽可能地一次吃最多的果实,所以路线可以这样规划:
![](http://o7x0ygc3f.bkt.clouddn.com/%E6%9C%80%E9%95%BF%E8%B7%AF%E5%BE%84%E9%97%AE%E9%A2%98-9.png)
至此,我们可以对这个问题进行描述:已知空白区域不能走,每次可以往正上、正下、正左、正右、左上、左下、右上、右下八个方向走,走过的位置不能再走,求能吃最多果实的路线(最长路径问题)?
原文:http://wudashan.cn/2017/09/04/Company-Programming-Competition/ 基于 Java 的实现。
你能翻译为 Go 语言吗?
有疑问加站长微信联系(非本文作者)